樹莓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
