OpenCV4.5.x在树莓派4B的安装和验证

本文详细记录了在树莓派4B上全新安装CMake并采用简化方法安装OpenCV 4.5的过程,包括配置GPU内存、更新EEPROM、设置Swap memory及验证安装的步骤。重点在于32位系统的特定指导和安装脚本的使用。
部署运行你感兴趣的模型镜像
 首先声明,我是在树莓派4B全新安装的,之前没有安装过旧的opencv。使用的树莓派镜像是 
   2021-10-30-raspios-bullseye-armhf.img 这个镜像,刚安装好CMake。安装cmake的步骤简单说下:
 下载了cmake源码包后,就是在终端运行以下几个命令:
mv /home/pi/Downloads/cmake-3.22.0.tar.gz /home/pi/cppProjects/cmake_src/
sudo apt install openssl libssl-dev
tar -zxvf cmake-3.22.0.tar.gz 
cd cmake-3.22-0
./bootstrap
make
sudo make install

 在树莓派安装OpenCV有些复杂,网上也有很多种安装OpenCV的方法,比较混乱。经过我的搜索和梳理,找到了一种比较简单的安装方法,网址为:

https://qengineering.eu/install-opencv-4.5-on-raspberry-pi-4.html
大家最好先看看上面这个网页。我也是完全按照它的建议,从github下载他提供的安装脚本安装的。直接按照上面网页的步骤做即可。首先要更改GPU Memory, 然后要更新树莓派的EEPROM。接着作者说了不要在python的PIP中安装opencv等,确实都是好建议。
然后我们要运行unname -a确认下当前是64位系统还是32位系统。经过我的验证,我下载的2021-10-30-raspios-bullseye-armhf.img 这个镜像是32位系统。因此可以直接运行作者提供的shell脚本程序。接下来关键的一步是要设置Swap memory,因为opencv很吃内存,编译过程要占用很大内存,必须要多提供些硬盘空间用于临时内存。按照作者的要求修改 /sbin/dphys-swapfile文件。下面最后一行有2048那个就是文件要修改的地方。

restrict size (computed and absolute!) to maximally this limit

can be set to empty for no limit, but beware of filled partitions!

this is/was a (outdated?) 32bit kernel limit (in MBytes), do not overrun it

but is also sensible on 64bit to prevent filling /var or even / partition

CONF_MAXSWAP=2048 --------> 2048改成4096。
然后重启系统。
接着去作者的github网站下载他的shell脚本文件:
https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-32-bits
下载了该资料库后。

在这里插入图片描述
下载后如上图。随便挑一个比如将OpenCV-4-5-0.sh文件用WinSCP拷贝到树莓派中,在终端直接运行下面两句即可:

$ sudo chmod 755 ./OpenCV-4-5-0.sh
$ ./OpenCV-4-5-0.sh

一个shell脚本,完成了60多个指令,这就是shell脚本程序的好处。安装CMake的过程也可以使用类似的shell脚本来实现,省去了打字的麻烦!注意,为了加快速度,我没有使能QT功能,大家有需要自己修改OpenCV-4-5-x.sh脚本即可。
整个opencv安装过程大约一个半小时。安装完成后的截图如下,你会看到
Congratulations!
You’ve successfully installed OpenCV 4.5.0 on your Raspberry Pi 32-bit OS
这两句话,代表安装完毕了!
在这里插入图片描述
最后修改 /sbin/dphys-swapfile文件。将CONF_MAXSWAP=4096改回成2048。

restrict size (computed and absolute!) to maximally this limit

can be set to empty for no limit, but beware of filled partitions!

this is/was a (outdated?) 32bit kernel limit (in MBytes), do not overrun it

but is also sensible on 64bit to prevent filling /var or even / partition

CONF_MAXSWAP=4096 --------> 4096改成2048
找到了这篇文章,的确大大降低了安装难度。大家可以看看这位优快云朋友的安装过程:
https://blog.youkuaiyun.com/qq_42642142/article/details/112474678
复杂得多,实际上就是将脚本程序一步一步地执行。不过经过这么折腾和总结,我相信他的软件水平也会提高不少呢!

二、验证OpenCV的安装
1、使用Python验证
如下:
import cv2
print(cv2.version)
截图如下:
在这里插入图片描述
从上图可知我刚安装的opencv版本是4.5.0。

2、做一个OpenCV C++小程序验证OpenCV的C++接口
打开我之前做的opencv验证小程序,ch2_1
在这里插入图片描述
打开第一个CmakeLists.txt,如下:

cmake_minimum_required (VERSION 3.0)
cmake_policy(SET CMP0012 NEW)
PROJECT(Ch2_1)

find_package(OpenCV REQUIRED)
message(" opencv version: ${OpenCV_VERSION}")
include_directories(${OpenCV_INCLUDE_DIRS})        # Not needed for CMake >= 2.8.11

ADD_EXECUTABLE( sample1 sample1.cpp )
TARGET_LINK_LIBRARIES(sample1 ${OpenCV_LIBS})

我在第六行添加了一个message可以看到当前的opencv版本号。
第二个文件就是图像处理领域大名鼎鼎的lena头像了。大家随便找个图就行。我还是把图贴上吧…
在这里插入图片描述

第三个sample1.cpp文件也很简单,就是将彩色图转换成灰度图,并在终端显示指定位置的像素值。
sample1.cpp文件如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

// OpenCV includes
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
using namespace cv;

int main( int argc, const char** argv )
{
	// Read images
	Mat color= imread("../lena.jpg");
	Mat gray= imread("../lena.jpg", IMREAD_GRAYSCALE);
	
	if(! color.data ) // Check for invalid input
	{
		cout << "Could not open or find the image" << std::endl ;
	 	return -1;
	}

	// Write images
	imwrite("lenaGray.jpg", gray);
	
	// Get same pixel with opencv function
	int myRow=color.cols-1;
	int myCol=color.rows-1;
	auto pixel= color.at<Vec3b>(myRow, myCol);
	cout << "Pixel value (B,G,R): (" << (int)pixel[0] << "," << (int)pixel[1] << "," << (int)pixel[2] << ")" << endl;
	
	// show images
	imshow("Lena BGR", color);
	imshow("Lena Gray", gray);
	// wait for any key press
	waitKey(0);
	return 0;
}

用WinSCP把ch2_1文件夹拷到树莓派中,然后在终端运行下列命令:
$mkdir build; cd build
$cmake …/
$cmake --build .
$./sample1
下面的截图就是运行情况:
在这里插入图片描述
从上图可看到CMake检测到了opencv的版本为4.5.0
在这里插入图片描述
运行sample1文件后,当正常看到了两张美丽性感的Lena图后,代表opencv的C++接口也可以正常使用了。
在这里插入图片描述
至此,opencv4.5.0就成功安装到树莓派上了。

您可能感兴趣的与本文相关的镜像

Wan2.2-I2V-A14B

Wan2.2-I2V-A14B

图生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

<think>好的,我需要帮助用户在树莓派4B上安装OpenCV 4.5。首先,根据用户提供的引用资料,引用[1]提到用了一种半小时安装的方法,而引用[2]则详细描述了使用CMake从源码安装的步骤。不过用户现在需要的是安装OpenCV 4.5的教程,可能需要综合这两个引用中的信息。 首先,我需要确认用户的操作系统版本。引用[2]使用的是Raspberry Pi OS Bullseye,所以可能需要先更新系统。然后,安装依赖项是关键步骤。用户可能需要安装开发工具必要的库,如CMake、Python开发包、图像处理库等。 接下来,下载OpenCV 4.5的源代码。用户需要从官方仓库下载指定版本的源码,并解压。然后,创建构建目录,配置CMake参数。这里可能需要调整参数以适配树莓派的硬件,比如启用NEON优化,设置Python环境等。 编译过程可能会比较耗时,尤其是在树莓派上。建议用户使用多线程编译,比如make -j4,但需要注意内存是否足够。编译完成后,执行sudo make install来安装安装完成后,验证是否正确安装。用户可以通过Python导入cv2并检查版本来确认。另外,测试一个简单的OpenCV功能,比如读取图像,可以确保安装成功。 还需要注意可能的依赖项缺失问题,比如如果编译过程中出现错误,可能需要安装额外的库。此外,引用[2]中提到的CMake安装步骤可能需要用户提前安装好正确版本的CMake,但用户可能已经完成了这部分,所以可以简化步骤。 最后,生成相关问题时,需要考虑用户在安装过程中可能遇到的常见问题,如依赖项安装失败、编译错误、验证方法等,以及如何优化安装过程或解决性能问题。</think>### 树莓派4B安装OpenCV 4.5详细步骤 #### **1. 系统准备** - 建议使用**Raspberry Pi OS Bullseye**(2021年10月后版本),确保系统更新: ```bash sudo apt update && sudo apt upgrade -y sudo reboot ``` #### **2. 安装依赖项** ```bash # 基础编译工具 sudo apt install build-essential cmake git pkg-config libgtk-3-dev # 图像处理库 sudo apt install libjpeg-dev libpng-dev libtiff-dev libwebp-dev # 视频与数学库 sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt install liblapacke-dev libatlas-base-dev gfortran # Python3支持 sudo apt install python3-dev python3-pip python3-numpy ``` #### **3. 下载OpenCV 4.5源码** ```bash # 下载OpenCV 4.5.5源码 wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip unzip opencv.zip # 下载OpenCV_contrib模块(可选) wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip unzip opencv_contrib.zip ``` #### **4. 配置CMake** ```bash cd opencv-4.5.5 mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.5.5/modules \ -D ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ -D BUILD_TESTS=OFF \ -D WITH_LIBV4L=ON \ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages .. ``` #### **5. 编译与安装** ```bash # 使用4线程编译(根据CPU调整) make -j4 # 安装到系统目录 sudo make install sudo ldconfig ``` #### **6. 验证安装** ```python # Python终端测试 import cv2 print(cv2.__version__) # 应输出4.5.5 # 测试图像读取功能 img = cv2.imread("test.jpg") if img is not None: print("OpenCV安装成功!") ``` #### **注意事项** 1. **编译时间**:树莓派4B约需**3-5小时**,建议挂载散热风扇。 2. **内存不足**:若编译崩溃,尝试减少线程(如`make -j2`)或增加交换空间[^2]。 3. **模块裁剪**:若不需要`opencv_contrib`,可移除`-D OPENCV_EXTRA_MODULES_PATH`参数加速编译。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值