树莓4Opencv编译正常
A. ImportError: No mole named cv2
在树莓派编译opencv时有时会遇到找不到python3+的library,这时需要注意是否配置了LD_LIBRARY_PATH。
nano~/.profile11
在环境变量末尾加入
exportLD_LIBRARY_PATH=/usr/lib/:$LD_LIBRARY_PATH11
source~/.profile11
配置以后再预编译opencv时就可以看到,python的位置就都已经可以找到,在进行编译时,cv2.so就会依赖到packages path下
若还无法依赖 path的话 clean后重新make即可
希望对你有帮助
B. opencv图像覆盖运行出现如下错误,程序编译没有错误,但运行后控制台出现如下错误,求解答
#include"highgui.h"
#include"cv.h"
#include<iostream>
using namespace std;
int main()
{
IplImage * img1 = cvLoadImage("./TestImg/111.bmp",1);//被复制的图像
IplImage * img2 = cvLoadImage("./TestImg/222.bmp",1); //代表目标图像
int d=img2->depth;//目标图像的深度
int n=img2->nChannels;//目标图像的通道数
IplImage* img3 =NULL;
double bili1=1.0*50/img1->width;//宽变得比例------你原来的整形除法结果分子小于分母,等于0.
double bili2=1.0*50/img1->height;//高的比例-------。。。
CvSize size;
size.width=(int)img1->width*bili1;
size.height=(int)img1->height*bili2;
img3=cvCreateImage(size,d,n);
cvResize(img1,img3,CV_INTER_LINEAR );
CvSize size1=cvGetSize(img3);
CvRect roi3=cvRect(0,0,size1.width,size1.height);//获得img3的感兴趣区域
cvSetImageROI(img3, roi3);//设置感兴趣区域图3的
CvRect roi2=cvRect(0,0,50,50);
cvSetImageROI(img2, roi2);//同上
cvCopy(img2, img3);
cvResetImageROI(img3);
cvResetImageROI(img2);
cvNamedWindow("result");
cvShowImage("result", img2);
cvWaitKey(-1);
cvReleaseImage(&img2);
//cvReleaseImage(&img1);
cvDestroyAllWindows();
return 0;
}
C. opencv2.4.4按照教程配置以后,测试代码也编译成功,打开的图像窗口却是灰色一片,为什么
图像的路径没写错?
检查一下src的尺寸,如果是0,0的话说明读取失败。
D. 树莓派怎么移植OPENCV
不用移植。
直接下载OPENCV的源码包,按照网上的教程,编译一遍。非常耗时间,晚上编译,第二天早上就好了。
E. 如何在树莓派3B上安装和编译OpenCV 2.4.13.0
网络搜索NOOBS,把解压文件全部放入sd卡根目录,开机选择一个L开头的系统,他的图标像打开的 方盒子,安装就行了、
采纳 。送 爱上树莓派全书,歪果仁写的精品书哦~
F. 如何编译opencv中的install工程
第一步:由于opencv是在cmake工具下建立的工程,所以我们先要下载cmake,下载地址随便一搜都有,不多说。下载到home的主目录下,这里我们是/home/lg。看下面的命令:#cd /home/lg#tar xzvf CMake2.4.7.tar.gz .#cd CMake2.4.7#./boostrap#gmake#make install这样cmake工具安装好了,并且可以直接使用cmake命令根据cmake的编译规律,我们选择外部编译。
2
下载Opencv2.3.0到/home/lg解压后进入Opencv2.3.0的目录下(这里的opencv与以前版本1.0的不一样,没有configure文件,所以我们执行不了 ./configure命令) :#mkdir build#cd build#cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON.. (这条命令解析可以参考cmake教程, 但是记住这里的第二个选项,我们将opencv安装在/usr/local目录下的)#make#make install到这opencv编译完成,接下去看看opencv这个工具能正常使用。
3
记住这里的做法前一种对fedora有用, 也就是说在fedora的环境下只能使用这种做法, 但是ubuntu却可以使用两种方法。 顺便说一下, 经常遇见apt-get命令,这是在ubuntu下使用获取软件包的命令, fedora使用的是yum, 记住了, 否则经常出现使用apt-get却获取不了软件包的情况。方法1:在/etc/ld.so.conf.d下新建一个文件opencv.conf,里面输入/usr/local/lib方法2:在/etc/ld.so.conf文件中加入/usr/local/lib这一行然后执行#ldconfig(root权限下)#cp /usr/local/lib/pkconfig/opencv.pc /usr/lib/pkgconfig(或者是输入这个命令 exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH)( pkconfig的用法见以前的博文)至此opencv安装完成我们可以找个例子来做实验#cd /home/lg/Opencv2.3.0#cd samples/cpp#g++ `pkconfig --cflags --libs opencv` drawing.cpp -odrawing(记住前面的两个引号是通过ESC下面的那个波浪符键获得的)现在我们编译那个人脸检测程序,在Opencv2.3.0/data/目录下有检测鼻子、眼睛的XML文件,这可以通过改build目录下的c目录下的facedetect文件获得。#cd ..#cd c#g++ `pkconfig --cflags --libs opencv` facedetect.c -ofacedetect到此结束
G. OpenCV静态库编译与链接
以OpenCV-4.0.0为例说明在Ubuntu环境下的静态库编译与链接方法:
opencv依赖第三方的库,所以当把opencv编译成静态库的时候,注意要把它运行时必要的依赖库也编译进来,opencv源码内有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video时编译)、libgtk(用于显示界面显示,服务器部署不会用到),可以通过cmake -LA来查看配置的编译信息,再根据信息考虑把opencv的哪些mole编译进来。
链接时指定opencv的静态库以及依赖的库。另外需要注意头文件的问题,通过CMakeLists把opencv加入项目编译时,由于opencv编译完成后要install才会把所用的头文件集中拷贝到一个地方,所以事先将头文件拷贝到了项目的opencv目录下。
H. 树莓派4运行opencv死机重启
去检查eeprom的数据
树莓派4与之前树莓派相比,增加了eeprom启动的方式。所以当我们把制作好镜像的SD卡插上,发现没有反应,这个时候,就要去检查eeprom的数据是否已近被改掉了。
断开设备电源,移除SD卡设备,然后重新连接。如果绿色LED指示灯不闪烁,则表明EEPROM已损坏,或者里面的固件已经损坏,这时就需要进行恢复操作了。
或者有时候,设置TFTP启动设置错误,导致只能从网络引导启动,而此时网络又不能使用了。这时也需要恢复eeprom。
I. OpenCV 配置问题
安装
1.安装OpenCV
我本人是在Windows下进行安装,因而介绍的也是与Windows相关的一些心得,这里也就只介绍Windows下的安装。下载OpenCV安装程序。我使用的版本是OpenCV_1.0.exe,在随后的介绍都是以此版本为基础的。
windows下安装非常简单,就不多做累赘,双击安装文件,点击“Next”后,安装程序会让用户选择OpenCV的根目录所在硬盘的位置,比如D:\Program Files\OpenCV\。我们以后用<opencv_root>来表示这个路径。用户可以选择安装到其它的路径下,推荐将OpenCV安装在C盘的OpenCV目录下。
在安装时选择“将<…>\OpenCV\bin加入系统变量”(Add<...>\OpenCV\bin to the systerm PATH),这样做的目的是在运行程序的时候,OpenCV的动态链接库能够被访问的到,因为所有的动态链接库都放置于<opencv_root>\bin目录下。
对于特殊的路径,可以在“我的电脑”“属性”“高级”“环境变量”中添加上述变量,如:变量Path值:D:\Program Files\OpenCV\bin 。
2.安装DirectX SDK(一般用户用不到,可以不装,直接跳过)
对于想要用OpenCV进行视频处理的用户而言,还需要安装微软的DirectX SDK开发包。首先从微软官方网站msdn.microsoft.com/directx/上下载DirectSDK,大约在200MB左右,注意要下载directx 9.0b 版本,不是后面的升级版本。
安装DirectX SDK;打开SDK的安装目录(一般为C:\DXSDK),找到BaseClasses文件夹,一般在C:\DXSDK\Samples\C++\DirectShow\BaseClasses,打开其中的BaseClasses.dsw(其中BaseClasses.sln为.net下(vc7.0)的可执行文件);在“生成”目录下选择“批生成”在选项中选择“Debug”和“Release”,然后生成该项目; 打开C:\DXSDK\Samples\C++\DirectShow\BaseClasses文件夹,会发现两个文件夹——Debug和Release,将Debug中的strmbasd.lib文件和Release中的STRMBASE.lib文件拷到C:\DXSDK\Lib目录下; 在VC的工程中加入如下库文件和包含文件: 在vc.net下选择“工具”“选项”,在左边的目录下选择“项目”“VC++目录”在右上角的筐里选择“库文件”将C:\DXSDK\Lib加入库文件中;再选择“包含文件”,将
C:\DXSDK\Include
C:\DXSDK\Samples\C++\Common\Include
C:\DXSDK\Samples\C++\DirectShow\BaseClasses
加入其中;
注意:有必要将上述目录移到最上方,以免在编译时发生访问库的冲突!
编译OpenCV
打开OpenCV安装目录下的_make文件夹,启动其中的opencv.dsw工程(如: D:\Program Files\OpenCV\_make\opencv.dsw);在vc中选择build----batch build ,所有64位的都不选,然后点build。这样就生成了以后大家经常用到的一些lib及dll,包括release和debug两个版本的,大概需要编译5分钟,视电脑配置。
如果需要用到DirectX SDK,还需要启动_make目录下的另外一个工程“opencv_directshow.dsw” ,使其编译通过;
加入库文件及包含文件的方法:
D:\Program Files\OpenCV\cv\include
D:\Program Files\OpenCV\cvaux\include
D:\Program Files\OpenCV\otherlibs\highgui
D:\Program Files\OpenCV\cxcore\include
D:\Program Files\OpenCV\otherlibs\cvcam\include
(上述文件属于常用文件,如果需要可自行添加另外的包含文件)加入库文件:
D:\Program Files\OpenCV\lib
体验OpenCV
在Opencv安装目录下有很多例子D:\Program Files\OpenCV\samples\c 下面是C的例子
我装完了 但是环境变量并没有自动设置好,于是我手动设置了系统变量路径
可以在“我的电脑”“属性”“高级”“环境变量”中添加上述变量,如:变量Path值:D:\Program Files\OpenCV\bin 。
然后运行那些例子 就可以看到效果了
有个dft.c 经典算法 大家都很熟悉的 可以看看
大家可以研究一下cvsample.exe 这个是个vc6的console程序 ,工程文件是cvsample.dsw,效果是打开lina并检测脸部效果如下
\
在VS的项目设置中添加openCV的头文件路径。还有,设置这些引用等。
菜单Tools->Options->Directories:先设置lib路径,选择Library files,在下方填入路径:
C:\Program Files\OpenCV\lib
然后选择include files,在下方填入路径:
C:\Program Files\OpenCV\cxcore\include
C:\Program Files\OpenCV\cv\include
C:\Program Files\OpenCV\cvaux\include
C:\Program Files\OpenCV\ml\include
C:\Program Files\OpenCV\otherlibs\highgui
C:\Program Files\OpenCV\otherlibs\cvcam\include
然后选择source files,在下方填入路径:
C:\Program Files\OpenCV\cv\src
C:\Program Files\OpenCV\cxcore\src
C:\Program Files\OpenCV\cvaux\src
C:\Program Files\OpenCV\otherlibs\highgui
C:\Program Files\OpenCV\otherlibs\cvcam\src\windows
项目设置
每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。菜单:Project->Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library moles附加上
cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
