pencv返回镜像 python_树莓派3和4B安装OpenCV教程(编译源码,一次成功)提供安装好OpenCV的系统镜像...

本文档提供了在树莓派上从源码编译安装OpenCV3.4.3的详细步骤,包括更换Raspbian源、安装依赖、编译OpenCV、配置环境。还提供了已安装好OpenCV的系统镜像下载,以及烧录后如何验证OpenCV安装是否成功的方法,包括C++和Python程序示例。
摘要由CSDN通过智能技术生成

目录

【准备工作】

【正式安装】

一、安装OpenCV所需要的依赖工具和一些图像视频库。

二、编译OpenCV源码

【系统镜像补充】

【准备工作】

1.这里我用的是官方Raspbian-buster-full系统,首先要更换源为清华源,避免后面下载gtk2.0失败。

换源方法:https://blog.csdn.net/zqxdsy/article/details/102574239

2. 可以外接屏幕也可以使用VNC远程操作,在编译过程中使用tee命令将编译过程保存下来,可以很方便地进行查看,不用担心远程连接中断的问题,后面会说明,可跳过这里。

【补充】:我将安装好OpenCV的系统做了个镜像,大小只有4.86G,压缩后2.09G,直接烧录到TF卡中就可以使用OpenCV,如图是调用OpenCV库的两个例子,图1是显示一张图片,图2是进行模板匹配,Makefile和脚本run.sh内容很简单,就是编译程序和运行的一些命令,如下图所示:

4936b3a929c168f78a695da6ad320286.png 图1 显示一张图片

图2 模板匹配,模板和待检测的图片进行匹配,并框选出匹配到的部位

该系统已安装好VNC等必要的软件,静态IP也已设置好,文档中有详细的使用方法,包括树莓派和windows系统之间的复制和文件传输等功能,需要的可自行下载,亲测树莓派4和3都能正常使用,对于该系统有需要补充的地方会在末进行说明。

系统镜像下载地址

【正式安装】

一、安装OpenCV所需要的依赖工具和一些图像视频库。

1.安装构建必需工具

// 安装build-essential、cmake、git和pkg-config

sudo apt-get install build-essential cmake git pkg-config

2.安装常用的图像工具包

// 安装jpeg格式图像工具包

sudo apt-get install libjpeg8-dev

// 安装tif格式图像工具包

sudo apt-get install libtiff5-dev

// 安装JPEG-2000图像工具包

sudo apt-get install libjasper-dev

// 安装png图像工具包

sudo apt-get install libpng12-dev

3.安装视频工具包,最后的是v4l中4后面的是 英文字母“l”

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

4.安装gtk2.0,若下载出错请查看源是否为清华源或中科大源

sudo apt-get install libgtk2.0-dev

5.安装优化函数包

sudo apt-get install libatlas-base-dev gfortran

二、编译OpenCV源码

1.下载opencv3.4.3和opencv_contrib3.4.3(可以选择其他版本,不过二者版本号需一致)

法一:直接下载解压使用

OpenCV源码下载地址(OpenCV源码可直接下载,下面的扩展包最好用wget下载)

OpenCV_contrib下载地址(我是直接下载的,有的说直接下载contrib包后面编译会出错,因此需要使用wget下载contrib,推荐法二使用wget下载方式,避免出错)

法二:使用wget下载OpenCV源码

//** 下载后需要解压到用户目录下

// 下载OpenCV

wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip

// 解压OpenCV

unzip opencv-3.4.3.zip

// 下载OpenCV_contrib库:

wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip

// 解压OpenCV_contrib库:

unzip opencv_contrib-3.4.3.zip

2.将下载的源码解压缩,并在终端中进入源码目录

//具体路径请以实际为准

cd ~/opencv-3.4.3

3.新建release文件夹,用来存放cmake编译时产生的临时文件

// 新建release文件夹

mkdir release

// 进入release文件夹

cd release

4.设置cmake编译参数,安装目录默认为/usr/local 。

注意参数名、等号和参数值之间不能有空格,每行末尾“\”之前有空格,这里使用换行符“\”是为了看起来工整,参数值最后是两个英文的点,意思是上级目录(【注意】如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/pi/opencv_contrib-3.4.3/modules):

/** CMAKE_BUILD_TYPE是编译方式

* CMAKE_INSTALL_PREFIX是安装目录

* OPENCV_EXTRA_MODULES_PATH是加载额外模块

* INSTALL_PYTHON_EXAMPLES是安装官方python例程

* BUILD_EXAMPLES是编译例程(这两个可以不加,不加编译稍微快一点点,想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON,要C++例程的话在最后一行前加参数INSTALL_C_EXAMPLES=ONINSTALL_CXX_EXAMPLES=ON)

**/

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D INSTALL_CXX_EXAMPLES=ON \

-D BUILD_EXAMPLES=ON ..

配置成功后如下图

ed0404aac45ba4636eb465aa0743e243.png

因为下一步的编译会使用release文件中的东西,假如编译失败后还要重新进行cmake,比较耽误时间,这里可以直接备份一下cmake好的release文件夹,命名为release1,重新make的时候可以拿来用。

//返回上层目录

cd ..

//备份release文件夹

cp -r release ./release1

5.开始编译

/**

* 以管理员身份,否则容易出错

* make命令参数-j4指允许make使用最多4个线程进行编译,这样编译速度会更快

* 可以根据自己机器的情况进行更改

* 使用tee命令可以将编译过程中终端显示的信息保存到make.log文件中,便于查看,这样即使VNC断线,终端的* 信息太多看不到,也可以通过make.log文件查看编译过程。

**/

sudo make -j4 2>&1 | tee make.log

// 安装

sudo make install

// 更新动态链接库

sudo ldconfig

保存make编译信息说明链接

如果看到进度编译到100%,那就说明编译安装成功了。

fae1fdba0d8f3c3f49b22e1822c5a7ad.png

6.其他配置

这步是为了设置库的路径,相当于windows下的环境变量,便于使用OpenCV库,也可以不进行设置,使用的时候说明路径也可。例如在编译时说明使用库的路径是 -L/usr/local/lib

(1)配置opencv.conf

打开opencv.conf配置文件

//这里我使用的是gedit,类似于记事本,树莓派默认的是nano,也可以使用vim,怎么方便怎么用

sudo gedit /etc/ld.so.conf.d/opencv.conf

在末尾添加如下内容

/usr/local/lib

?

注意:?表示一个空格,可能原因是有的语言要求最后有一个空格才可以编译通过。

加载一下

sudo ldconfig

(2)打开bash.bashrc配置文件

sudo gedit /etc/bash.bashrc

在最后添加如下内容

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

重启树莓派或者点击注销用户重新登录

sudo reboot

7.检测OpenCV使用是否正常

法一:C++程序

//C++程序,使用OpenCV读取一张图片

#include#includeusing namespace std;

using namespace cv;

int main()

{

Mat src=imread("~/1.jpg");

imshow("src",src);

waitKey(0);

return 0;

}

保存该文件为imshow.cpp,在终端使用下面命令进行编译(若在前面设置了环境,可以不加-L/usr/local/lib)。

g++ imshow.cpp -o imshow -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs

给编译好的文件添加可执行权限并执行

//添加执行权限

sudo chmod a+x imshow

//执行程序

./imshow

法二:Python程序

安装的Raspbian系统自带Python编译器,若没有安装,执行下列命令进行安装

sudo apt-get install python-dev python3-dev

python程序,使用OpenCV画一条直线

import cv2

import numpy as np

cv2.namedWindow("gray")

img = np.zeros((512,512),np.uint8)#生成一张空的灰度图像

cv2.line(img,(0,0),(511,511),255,5)#绘制一条白色直线

cv2.imshow("gray",img)#显示图像

#循环等待,按q键退出

while True:

key=cv2.waitKey(1)

if key==ord("q"):

break

cv2.destoryWindow("gray")

保存该文件为opencv_test.py,并在终端运行程序

python3 ./opencv_test.py

运行结果如下:

32286b031283e74fdc53f31dbbdb4b15.png

【系统镜像补充】

烧写该系统后如果有使用问题可以私信我,看到后会及时回复。

1.关于远程连接(VNC、Putty等)

树莓派和电脑通过手机提供热点连接在同一局域网,可以直接按照文档说明进行远程控制;如果连接其他网络,则需要修改配置文件,因为之前的192.168.43.XXX是手机热点的IP。在树莓派中修改文件/etc/dhcpcd.conf,也就是 DHCP的配置文件。将最后的wlan0中的IP和路由地址的网段修改为当前网络的网段,修改完成后保存,重启树莓派就可以了。

2.关于在树莓派和windows之间进行复制粘贴

直接进行复制粘贴是不行的,该系统已经在树莓派中安装autocutsel软件,只要在终端运行命令“autocutsle -f”就可以了,为了更加方便,可以在根目录建一个名为copy.sh的脚本,使用“chmod a+x copy.sh”命令给予运行权限,每次直接运行这个脚本 就可以了,不用去记那个软件的名字。

3.下载的系统中会有详细说明和使用方法,包括用户密码、软件的使用、和windows系统的交互方法等,能够让你很快地上手。已安装中文输入法,设置了静态IP,无论连接的是什么网,只要和连接在同一局域网中,都可以输入固定的ip地址进行远程连接树莓派,其他多余的软件一个都没有安装。以下是说明的部分截图:

7d950cbd8a83a5ca344072187aa7dd43.png

317302051200a86fc9f66a9631b573d4.png

2dac79cae411888b547d5ed9a0b4719e.png

还有很多就不一一列举了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值