導航:首頁 > 源碼編譯 > opencv源碼裁剪移植Linux

opencv源碼裁剪移植Linux

發布時間:2022-03-13 23:51:20

linux opencv 怎麼看源代碼

1、找到Opencv的安裝目錄,例如安裝目錄在F盤,找到相應的安裝目錄如下所示
2、可以看到上圖中有兩個目錄文件夾,而要找的源代碼就在source這個文件夾下,打開這個目錄

3、在上圖中找到moles,打開後可以看到很多文件夾,每個文件夾下都存放了不同類型領域的源代碼。

⑵ linux 下 opencv程序怎麼編譯

運行了樓上給的命令之後,結果是這樣的:
# g++ `pkg-config opencv --libs --cflags opencv` facedect.cpp -o facedect -static
/tmp/cc8XhRf6.o: In function `find_face(_IplImage*)':
facedect.cpp:(.text+0x51): undefined reference to `cvCreateImage'
facedect.cpp:(.text+0xc0): undefined reference to `cvCreateImage'
facedect.cpp:(.text+0xdd): undefined reference to `cvCvtColor'
facedect.cpp:(.text+0xf7): undefined reference to `cvResize'
facedect.cpp:(.text+0x109): undefined reference to `cvEqualizeHist'
facedect.cpp:(.text+0x116): undefined reference to `cvClearMemStorage'
facedect.cpp:(.text+0x188): undefined reference to `cvHaarDetectObjects'
facedect.cpp:(.text+0x1c6): undefined reference to `cvReleaseImage'
facedect.cpp:(.text+0x1d1): undefined reference to `cvReleaseImage'
/tmp/cc8XhRf6.o: In function `isperson(char const*)':
facedect.cpp:(.text+0x21e): undefined reference to `cvLoad'
facedect.cpp:(.text+0x22f): undefined reference to `cvCreateMemStorage'
facedect.cpp:(.text+0x25a): undefined reference to `cvLoadImage'
facedect.cpp:(.text+0x27d): undefined reference to `cvReleaseImage'
facedect.cpp:(.text+0x289): undefined reference to `cvDestroyWindow'
collect2: ld returned 1 exit status

⑶ 我在arm-linux平台上移植了opencv2.0.0和libjpeg,想驗證一下移植的opencv是否正確,誰能幫忙提供一個很小

給一個最簡單的例子吧,用opencv轉換圖片格式,將其它格式轉換為png

#include "highgui.h"
#include "cv.h"

int main( int argc, char** argv )
{
IplImage* img = cvLoadImage( argv[1] );

cvsaveImage("1.png",img);

cvWaitKey(0);
cvReleaseImage( &img );
return 0;

}

⑷ linux 終端 編譯 opencv 程序

你的highgui、cv庫沒找到
排查此類問題,先看看是找不到什麼庫,確定程序需要這個庫,然後去了解系統默認會去調用哪些庫,最後排查庫是不是存在還是路徑不對。

⑸ 如何將opencv庫移植到linux中

編譯環境fedora9.0
xvid版本:xvidcore-1.3.2.tar.gz
x264版本:x264-snapshot-20110612-2245.tar.bz2
yasm版本:yasm-0.7.2.tar.gz
ffmpeg版本:ffmpeg-0.5.3.tar.bz2
OpenCV版本:opencv-2.0.0
上面這些文件可以到http://download.csdn.NET/detail/wc7620awjh/4866855處進行下載!
首先安裝x86平台下opencv,網上很多都只有arm上opencv的移植,但對於開發階段,都是在pc機的Linux環境下開發測試的,所以這里先介紹一下x86平台下opencv的移植。

⑹ linux opencv 怎麼重新編譯單個源碼

首先,先要再linux上安裝opencv的庫,在線安裝的話,很容易 然後,編譯的時候需要加上 `pkg-config opencv --libs --cflags opencv` 參數

⑺ linux里opencv怎麼交叉編譯

一、交叉編譯opencv 構造: 下載:各個庫的下載可以直接搜名字到官網下載 幾個關鍵解釋: 「--prefix=」 後邊跟make install時的位置,本例中,libz在make install時將安裝到/usr/arm-linux-gnueabihf中 「--host=」 後邊跟arm-linux表明使用的是ARM環境 有configure的才能進行configure配置 4)所有的makefile修改類似 Libz的交叉編譯 第一步:# ./configure --prefix=/usr/arm-linux-gnueabihf --shared 第二步:修改makefile,主要有下邊幾個,修改的時候通篇參照即可 CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar rc RANLIB=arm-linux-gnueabihf-ranlib STRIP = arm-linux-gnueabihf-strip 如果有ARCH的話,ARCH=ARM 第三步:#sudo make #sudo make install Libjpeg的交叉編譯 第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc 第二步:參考1)中方法修改makefile 第三步:#sudo make #sudo make install Libpng的交叉編譯 第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc 第二步:參考1)中方法修改makefile 第三步:#sudo make #sudo make install Yasm的交叉編譯 第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static 第二步:修改makefile 第三步:#sudo make #sudo make install Libx264的交叉編譯 第一步:#CC=arm-linux-gnueabihf-gcc ./configure --enable-shared --host=arm-linux --disable-asm --prefix=/usr/arm-linux-gnueabihf 第二步:修改config.mak里的參數,因為makefile要調用config.mak,所以修改方法同makefile 第三步:#sudo make #sudo make install Libxvid的交叉編譯 第一步:首先切換目錄 #cd build/generic 第二步:#./configure --prefix=/usr/arm-linux-gnueabihf --host=arm-linux --disable-assembly 第三步:#sudo make #sudo make install ffmpeg的交叉編譯 第一步: ./configure --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-yasm --disable-stripping --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/arm-linux-gnueabihf/include --extra-ldflags=-L/usr/arm-linux-gnueabihf/lib --prefix=/usr/arm-linux-gnueabihf 第二步:修改makefile文件 第三步:#sudo make #sudo make install 第四步:將ffmpeg加入pkg-config 執行#sudo gedit /etc/bash.bashrc,在末尾加入 export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib/ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/arm-linux-gnueabihf /lib/pkgconfig export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/arm-linux-gnueabihf /lib/ 完畢後使用命令:#source /etc/bash.bashrc 或者單獨使用三個export,不過壽命只在一個終端中,終端關閉時就失效。 幾個關鍵解釋:--extra-flags指向xvid的安裝路徑,--extra-ldflags指向x264的路徑 安裝cmake-gui 執行:#sudo apt-get install cmake-qt-gui Opencv的交叉編譯 第一步:修改opencv/platflrms/linux/目錄下的arm-gnueabi.toolchain.cmake,將其所有刪掉,寫入: set( CMAKE_SYSTEM_NAME Linux ) set( CMAKE_SYSTEM_PROCESSOR arm ) set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc ) set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ ) 第二步:在opencv目錄下新建build目錄,進入build目錄,執行命令: #cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../ 這時,要保證出現: 第三步:使用cmake-gui打開CMakeCache.txt,去掉所有的無關項,修改CMAKE_INSTALL_PREFIX,來確定make install的目錄 第四步:#sudo make #sudo make install 可能出現的錯誤: opencv編譯不通過,出現skip之類的,說明ffmpeg沒編譯好,或者其編譯好了,但是pkg-config沒有設置好,一定要設置好其環境 前邊幾步不通過的話,看看命令有沒有少,或者有沒有修改好makefile 在arm上使用時,一種方法時直接將編譯好的opencv目錄下的lib文件拷貝到開發板對應的/lib目錄下,其他或者拷貝到自己指定的目錄,並設置好環境變數即可使用

⑻ 關於opencv在arm上的移植問題

ubuntu intrepid + arm-linux-gcc(2.95.3)

所使用的交叉編譯器,似乎與編譯器對 stl 的支持程序有關。
目前可知的是,openmoko 提供的編譯器編譯1.0.0及1.1.0均有問題。

1、編譯opencv-1.0.0
$ cd opencv-1.0.0
$ mkdir build; cd build //這樣處理是比較干凈,也方便。

2.95.3對opencv-1.0.0正常,暫未發現問題。編譯opencv-1.1.0則存在問題。
另,ELDK-4.2已經安裝好,其支持都很是完整。另行測試。

1)配置(共享庫及靜態鏈接)
//共享庫
$ ../configure --host=arm-linux --prefix=/home/goosen/visions/install --without-gtk --without-v4l --disable-apps

//靜態編譯
$ ../configure --host=arm-linux --prefix=/home/goosen/visions/install --without-gtk --without-v4l --disable-apps --enable-static --disable-shared

此處若配置target=arm-linux,並沒有檢測交叉編譯器。因此選擇配置--host=arm-linux-gcc 。
靜態編譯opencv成功,只是編譯應用程序則出現大量的』undefined reference『。
對於ffmpeg, v4l及gtk的支持。需要整理文檔(基本步驟,碰到的問題及初步分析)。

2)編譯(安裝於~/visions/install/)
$ make; make install
$ ls ~/visions/install/ //opencv 安裝於 --prefix所配置目錄下
include lib share

2、設置環境變數及編譯sample(c 源碼)
1)編譯常式
//opencv共享庫,均正常。
//暫時無法實際測試,所使用的9200板子,未有LCD,另gtk未支持。
$ sh build_all.sh
$ file drawing
drawing: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

//編譯 drawing.c(靜態鏈接opencv)
$ arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`
/home/goosen/visions/install/lib/libcxcore.a(cxerror.o):???'__static_initialization_and_destruction_0'?:
cxerror.o(.text+0x518): undefined reference to `pthread_key_create'
collect2: ld returned 1 exit status

修改/home/goosen/visions/install/lib/pkgconfig 下opencv.pc, 加編譯參數 -lpthread

2)設置及修改。設置 PKG_CONFIG_PATH
$ export PKG_CONFIG_PATH=/home/goosen/visions/install/lib/pkgconfig
$ cd opencv-1.0.0/samples/c

修改build_all.sh
gcc -> arm-linux-gcc
g++ -> arm-linux-g++

//eldk的很好很強大,尋找時間進行進一步測試。

另,需要對ppp協議中的LCP協商部分,做更為深入的了解。

⑼ 求助怎麼把opencv的源碼直接放在自己的工程里

這個答案很顯然是肯定的,但是,opencv有自己的一些數據結構,如果你想把某個函數拿出來放到自己的代碼里,那麼就要將相關的數據結構與自己的數據結構相結合或轉換。

閱讀全文

與opencv源碼裁剪移植Linux相關的資料

熱點內容
linuxpython下載安裝 瀏覽:934
人工免疫演算法matlab 瀏覽:655
黑客點擊指標源碼 瀏覽:813
農場源碼搭建 瀏覽:307
phpfopen讀取 瀏覽:111
linuxc暫停 瀏覽:833
海康的雲伺服器的作業 瀏覽:130
pdf組織技術 瀏覽:400
鋼筋加密區原位標注怎麼確定跨數 瀏覽:364
微信小程序朋友圈發消息源碼 瀏覽:207
手機連接伺服器在什麼設置 瀏覽:929
linux關閉httpd 瀏覽:79
劍與家園伺服器怎麼樣 瀏覽:171
金蜘蛛源碼公式 瀏覽:819
java自定義監聽 瀏覽:982
明星公仔娃娃app叫什麼 瀏覽:339
拼多多程序員價格 瀏覽:77
離上班的地方13公里源碼 瀏覽:561
共產主義pdf 瀏覽:833
安卓雲頂之弈用什麼登陸 瀏覽:777