當前位置:首頁 » 操作系統 » linux下的opencv

linux下的opencv

發布時間: 2023-01-05 14:02:24

linux下怎麼配置python和opencv

以下說明在Linux下Python和OpenCV結合安裝的過程,Python要使用OpenCV模塊,則必須導入OpenCV提供的包,所以要提供Python支持,首先在安裝OpenCV前安裝必要的組件,一般列表如下:
1、gcc g++一般系統自帶
2、cmake 編譯OpenCV時使用,需要手動安裝
3、pkg-config命令,一般系統自帶,如果缺少,使用 yum -y install pkg-config 安裝
4、Python 2.x,系統自帶
5、NumPy 一個用於大型矩陣處理的庫,這個必須!如果不安裝則後面OpenCV安裝後也編譯不出來Python的模塊,其他庫可以後來安裝
最後一步是安裝OpenCV
在保證前4項沒問題的情況下,開始安裝NumPy模塊,官網下載地址為:http://www.scipy.org/scipylib/download.html
進入SourceForge下載,地址為:https://sourceforge.net/projects/numpy/
直接點擊Download即可下載,下載成功之後上傳到Linux伺服器,安裝過程很簡單,解壓後直接安裝即可(之前要確保python-devel已經安裝)
unzip numpy-1.11.1.zip
cd numpy-1.11.1/
python setup.py install

另外numpy還可以去python官網下載:https://pypi.python.org/pypi/numpy
安裝成功之後接下來進一步安裝OpenCV,官方網站為:http://opencv.org/進入後點擊DOWNLOADS來到下載界面:http://opencv.org/downloads.html,這里下載2.4.13的版本
下載完之後上傳到Linux,執行接下來的安裝:
unzip opencv-2.4.13.zip
cd opencv-2.4.13/
cmake -D WITH_GTK_2_X=ON -D CMAKE_INSTALL_PREFIX=/usr/local .
make # make -j4表示開4個線程來進行編譯
make install

安裝過程時間可能會有點長10~30分鍾左右,編譯完成之後OpenCV就安裝到了指定的/usr/local下面的一些目錄中,庫文件就安裝到了/usr/local/lib下,Python的模塊安裝位置是:/usr/local/lib/python2.7/site-packages,執行 ls /usr/local/lib/python2.7/site-packages/ 可以看到兩個文件,一個是cv2.so一個是cv.py
這兩個文件在剛才opencv-2.4.13編譯的目錄下面lib/下也存在著兩個python模塊文件,但是不幸的是現在並不能直接使用,原因是我們操作系統python依賴包的位置是/usr/lib/python2.7下,所以剛才如果編譯到/usr下是直接可以用的,不過這個也不重要,只要我們將這兩個文件復制到正確的目錄下,那麼就能正常使用OpenCV的功能了,執行: cp /usr/local/lib/python2.7/site-packages/cv* /usr/lib/python2.7/site-packages/ 復制過去之後進入python互動式界面執行 import cv2 沒有報錯則安裝成功
可以寫一個測試的小案例,在伺服器上有一張圖片是test.jpg現在簡單的使用cv2模塊解析成圖像矩陣,然後再寫入磁碟文件中,代碼如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import cv2
image = cv2.imread("test.jpg")
print image
cv2.imwrite("test1.jpg",image)

這里將原有的test.jpg生成test1.jpg,
執行 python cvtest.py 執行完後會發現輸出好多矩陣變數,並且生成了test1.jpg文件
生成的文件有可能比原文件大也有可能小,具體根據圖像來決定,現在查看一下圖片內容,和之前是一樣的

Ⅱ 怎麼安裝opencv linux

OpenCV是一個基於開源發行的跨平台計算機視覺庫,它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法。在linux上安裝opencv的方法如下:

工具:

Windows7、VMware Workstation 12 Pro、ubuntu-15.10、opencv-3.0.0.zip

步驟:

一、安裝關聯庫

1、安裝編譯工具:sudo apt-get install build-essential

編譯程序有了這個軟體,它才知道頭文件和庫函數在哪,最後才形成一個開發環境。

Ⅲ 如何在Linux下編譯安裝OpenCV

下載opencv的linux安裝版,使用cmake工具編譯安裝,按照opencv的安裝文檔,一般是先執行cmake config,然後執行cmake install。

Ⅳ linux怎麼配置opencv

[cpp]view plain

  • sudoapt-getinstallbuild-essential

  • sudoapt-getinstallcmake

  • sudoapt-getinstalllibgtk2.0-dev

  • sudoapt-getinstallpkg-config

  • sudoapt-getinstallpython-devpython-numpy

  • sudoapt-getinstalllibavcodec-devlibavformat-devlibswscale-devlibjpeg-devlibpng-devlibtiff-devlibjasper-dev


  • 進入目錄opencv-3.1.0,然後cmake生成makefile:

    先把我的安裝歷史紀錄給大家看下吧,大家也好心裡有數


    然後

    [html]view plain

  • make&&makeinstall

  • 這下子代碼插入了。

    現在我們做的就是該怎麼找到opencv庫了:

    首先打開這個文件,在最後一行添加一句話,當然它也可能是空的,沒影響。

    [html]view plain

  • sudovim/etc/ld.so.conf.d/opencv.conf

  • 最後一行添加
  • [html]view plain

  • /usr/local/lib

  • 運行以下代碼配置庫:

    [html]view plain

  • sudoldconfig

  • 現在打開另一個文件,添加環境變數:
  • sudo gedit /etc/bash.bashrc

    在這個文件的末尾添加下面兩行:

    [html]view plain

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

  • exportPKG_CONFIG_PATH

  • 然後測試:

    [html]view plain

  • cd~

  • vimhello.cpp

  • [cpp]view plain

  • #include<stdio.h>

  • #include<opencv2/opencv.hpp>

  • usingnamespacecv;

  • intmain(intargc,char**argv)

  • {

  • if(argc!=2)

  • {

  • printf("usage:DisplayImage.out<Image_Path> ");

  • return-1;

  • }

  • Matimage;

  • image=imread(argv[1],1);

  • if(!image.data)

  • {

  • printf("Noimagedata ");

  • return-1;

  • }

  • namedWindow("DisplayImage",WINDOW_AUTOSIZE);

  • imshow("DisplayImage",image);

  • waitKey(0);

  • return0;

  • }


  • 然後編譯:

    [html]view plain

  • g++`pkg-config--cflagsopencv`-ohellohello.cpp`pkg-config--libsopencv`

  • 然後運行:

    [html]view plain

  • ./hellopsb1.jpg

  • 後面的psd是圖片路徑,由於我是在伺服器上運行的,所以沒辦法顯示出來,伺服器默認是沒有裝Xwindow的,我裝了,但是報了一堆錯,就放棄了

    [html]view plain

  • root@iZ28gdz88j1Z:~#./hellopsb1.jpg

  • (DisplayImage:25620):Gtk-WARNING**:cannotopendisplay:

    希望能夠幫助到你

Ⅳ linux怎麼切換opencv版本

1.注意事項:安裝目錄!
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.1.0 ..1

CMAKE_INSTALL_PREFIX之後的路徑就是opencv的安裝目錄了。之前的opencv2.4.13安裝到了根目錄,即/usr/local/里,所以之後的opencv3.1.0安裝到了/usr/local/opencv3.1.0/中這里,兩個版本opencv目錄一定要分開,不能安裝到同一個路徑下,否則會出現問題!
2.切換方式
切換方式其實比較簡單,把環境變數的路徑改一下就可以了。
a)
sudo gedit /etc/ld.so.conf.d/opencv.conf1

把opencv的lib路徑添加進去:
opencv3.1.0:
/usr/local/opencv-3.1.0/lib1

opencv2.4.13:
/usr/local/lib1

b)
sudo ldconfig1

c)
sudo gedit /etc/profile1

在最後加入PATH路徑:
opencv3.1.0:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-3.1.0/lib/pkgconfig
export PKG_CONFIG_PATH12

opencv2.4.13:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH12

d)
sudo gedit /etc/bash.bashrc 1

在最後添加PATH路徑:
opencv3.1.0:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-3.1.0/lib/pkgconfig1

opencv2.4.13:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig1

3.查看opencv版本:
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv123

實際使用中發現還是在尋找opencv2.4.13.
如果編譯使用的是cmake,打開CMakeLists.txt,添加:
set(OPENCV_DIR 「/home/ubuntu/opencv-3.1.0/build」)
如果上述方法還沒有作用,那麼就只好卸載不需要的opencv版本了:
cd opencv-2.4.13/release
sudo make uninstall
cd ..
sudo rm -r release
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/sh

關於更多Linux的學習,請查閱書籍《linux就該這么學》。

Ⅵ opencv2.1.0在linux下怎麼安裝

pkg-config 是一個庫文件安裝信息管理工具,它可以返回已安裝的庫文件及其相關頭文件的位置信息。安裝這個極容易,自己下載安裝把。
pkg-config 通過各個庫文件的.pc 文件識別已安裝的庫文件的信息,這些.pc文件是由各庫的安裝程序自己生成的,例如ffmpeg 安裝程序會在/usr/local/lib/pkgconfig目錄下提供libavcodec.pc libswscale.pc 等5個.pc文件,分別對應安裝的五個庫文件。
但pkg-confg默認只搜索/usr/lib/pkgconfig目錄,去尋找.pc文件,這里需要添加一個環境變數 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig,使得pkg-config可以找到ffmpeg的安裝信息。

三 安裝cmake
cmake 是一個跨平台makefile生成工具,是編譯新版opencv所必須的工具。
直接下載安裝cmake到一個合適的位置,並將cmake安裝目錄下的bin目錄加入PATH環境變數,cmake的使用詳見下述說明。

四 安裝opencv
1、下載最新版opencv源代碼 for linux.
2、在源代碼目錄下 mkdir release && cd release
3、cmake ../ (重點)
使用cmake 生成編譯opecv的Makefile 文件, ../ 是opencv的源代碼目錄,裡麵包含了預置的cmake 配置文件CmakeLists.txt。
這里的輸出,會顯示默認配置下,各模塊的檢測情況,重點是opencv所需工具庫是否被檢測到,例如視頻編解碼庫、TBB庫等。
查看CmakeLists.txt文件可知,cmake使用pkg-config獲取所需的庫文件的信息,這就是為什麼一定要安裝pkg-config的原因。
如果你看到FFMPEG及其下各子項的值為1,ok,檢測到了,如果為0,核對1、2兩步驟,看是否成功安裝了ffmpeg,以及pkg-config是否可以檢測到ffmpeg:
使用 pkg-config –list-all | grep libavcodec 。
4、 cmkae-gui ../
若你想改變opencv的默認編譯模式,用cmake的圖形模式可以編輯一大堆的編譯參數,例如是否支持IPP、TBB等等,這里比較討厭的是,圖形模式下,你看不到選擇的模塊是否被正確檢測到,要再運行 cmake ../ 查看。
5、 make && make install 默認 opencv將被安裝在 /usr/local/ 下。
6、 編輯環境變數 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 以使得系統可以找到opencv的動態鏈接庫。
到這里,opencv安裝完畢,並可讀寫幾乎全部常見視頻文件,你可以使用g++直接編譯你的常式,如果你的pkg-config配置正確,以下指令可以運行 :
g++ -o my_example my_example.cpp `pkg-config opencv --cflags --libs`
pkg-config opencv --cflags –libs 將返回opencv的頭文件和庫文件的編譯參數。

Ⅶ 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

Ⅷ linux 怎麼用opencv

預備

GCC
CMake
OpenCV

這些都可以在CentOS 6.0的「添加/刪除軟體」裡面找到並安裝。其他Linux版本可以選擇用編譯後安裝或者在Rpmfind尋找二進制安裝版本:

http://rpmfind.net/

CentOS安裝OpenCV 2.4+

下載OpenCV 2.4+壓縮包解壓到一個文件夾里,如:/home/me/opencv/
構建Makefile,在終端輸入,進行構建:

cd /home/me/opencv/

cmake .

進行編譯並安裝,編譯過程可能有些警告發生,請無視這些警告:

make

make check

make install

寫一個OpenCV程序

新建一個簡單的程序,例如:DisplayImage.cpp。

#include <stdio.h>
#include <cv.h>
#include <highgui.h>

//使用cv這個命名空間
using namespace cv;

/* 主函數
*C語言規定main函數只能有兩個參數,
*習慣上將這兩個參數寫成argc和argv。
*第一個代表(傳參個數+1),
*第二個代表傳慘數據。
*一般有兩種寫法:
*main( int argc, char* argv[])
*main( int argc, char** argv)
*/
int main( int argc, char** argv )
{
//建立一個Mat類型的變數image
Mat image;
/* API中有:
* C++: Mat imread(const string& filename, int flags=1 )
* 意思是返回Mat類型數據,第一個參數接受一個string類型的引用,
* 第二個參數接受一個int類型的flags,一般都是1。
*/
image = imread( argv[1], 1 );

//當傳的參數不是一個,或者圖片沒有數據則提示沒有圖片並退出程序
if( argc != 2 || !image.data )
{
printf( "沒有該圖片 \n" );
return -1;
}

//C++: void namedWindow(const string& winname, int flags=CV_WINDOW_AUTOSIZE )
namedWindow( "顯示圖片", CV_WINDOW_AUTOSIZE );
//C++: void imshow(const string& winname, InputArray mat)
imshow( "顯示圖片", image );
//C++: int waitKey(int delay=0)
waitKey(0);

return 0;
}

新的頭文件寫法

同樣的程序,可以用新的頭文件寫法來寫:

#include "opencv2/core/core.hpp"

#include "opencv2/highgui/highgui.hpp"

#include <stdio.h>

using namespace cv;

int main( int argc, char** argv ){
Mat image;
image = imread( argv[1]);

if( argc != 2 || !image.data ){
printf("沒有圖片\n");
return -1;
}

namedWindow( "顯示圖片", CV_WINDOW_AUTOSIZE );
imshow( "顯示圖片", image );
waitKey(0);

return 0;
}

創建一個對應的CMake文件

新建一個CMakeLists.txt,內容大概是這樣的:

project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

生成可執行文件

cd <DisplayImage_directory>
cmake .
make

結果

生成了一個DisplayImage文件,所以運行這個文件,將文件路徑傳進去:

./DisplayImage lena.jpg

你就能看到圖片了

熱點內容
安卓手機九宮格忘記密碼怎麼解 發布:2025-05-11 05:00:30 瀏覽:594
安卓手機拼多多怎麼解綁銀行卡 發布:2025-05-11 05:00:25 瀏覽:685
校園網可以搭建伺服器地址 發布:2025-05-11 04:54:40 瀏覽:784
noip演算法 發布:2025-05-11 04:53:51 瀏覽:50
有什麼我的世界伺服器啟動器 發布:2025-05-11 04:50:41 瀏覽:295
寫shell腳本 發布:2025-05-11 04:37:41 瀏覽:935
電腦伺服器打開有什麼用 發布:2025-05-11 04:36:49 瀏覽:98
sqlserver2008查詢時間 發布:2025-05-11 04:15:28 瀏覽:386
安卓孤膽車神被封號怎麼解封 發布:2025-05-11 04:05:22 瀏覽:940
高壓洗車泡沫怎麼配置 發布:2025-05-11 04:00:47 瀏覽:547