OpenCV2.4.3的新特征:
在經過4個月的等待后,OpenCV又發布了新版本了,此時的最新版本為OpenCV2.4.3,下載地址為:OpenCV-2.4.3.exe。
下面來看看opencv2.4.3有了哪些新變化,主要是參考網頁http://code.opencv.org/projects/opencv/wiki/ChangeLog上面介紹的,稍加翻譯了一些,因為對有些專有名詞不熟,所以可能翻譯得不妥。這次版本的變化內容有不少是來源於google summer code(GSoC),那個項目貢獻了不少code。
多線程方面,后台增加許多通用的多線程並行處理算法,比如說基於交叉平台的TBB和OpenMP,基於蘋果平台的Grand Central Dispatch,微軟的Concurrency computing等。因為OpenCV內嵌了這些后台算法,所以用戶甚至都不需要裝這些后台庫。
在android方面,提高了OpenCV的管理,增加了新的Java框架 例程,android上能夠更好地支持攝像頭,具體的細節改變參考:Android Release Notes
在ios系統方面,opencv2.framework完全支持ios6和iphone5了。ios上安裝opencv的教程可以參考:
http://docs.opencv.org/doc/tutorials/ios/table_of_content_ios/table_of_content_ios.html.
在Python方面,增加了一些實例,包括ASIFT,手寫字識別,運動去噪和Amazon PiCloud的使用。其使用參考:
https://github.com/Itseez/opencv/tree/master/samples/python2
在人臉檢測方面,由於GSoC的貢獻,增加了2個側臉的級聯分類器文件,可以參考網頁:https://github.com/Itseez/opencv/tree/master/data/lbpcascades
圖像去噪方面,完善了non-local means去噪算法,雖然該算法不是實時的,但是效果相當不錯。具體的可以參考網頁:
http://docs.opencv.org/trunk/modules/photo/doc/denoising.html
在光流方面,增加了“簡單流”光流算法,可以參考網頁:https://github.com/Itseez/opencv/tree/master/samples/cpp/simpleflow_demo.cpp.
CUDA方面,增加了不少GPU功能模塊。
驅動層完全對用戶開放,用戶現在可以使用opencv來寫CUDA的驅動了;在級聯分類器中支持LBP級聯;加入了快速非局部均值圖像去噪算法;引入了更快的積分算法;引入了霍夫圓,霍夫直線和廣義霍夫變換;引入了雙邊濾波器;廣義填水法填充連通域標注;前景背景分離算法,GMM,ViBe, GMG算法的加入;HOG類中增加了信任計算功能。
OpenCL方面,加入了算術運算,濾波,常見的幾何圖形變換,光流,級聯分類器,目前這些算法只能在GPU上跑。
在OpenCV2.4.2基礎上,修補了大概130個bug,這一點比較令人興奮,bug又少了這么多。
OpenCV現在社會推動很廣,已經加入了Github,網址為:http://github.com/itseez/opencv. 在該網頁上可以下載最新版本和提交各種問題。
個人感受:
從上面的趨勢可以看出,OpenCV正在朝向多平台,多核,多編程語言邁進,並且不斷的引入各種新的計算機視覺算法。期待2013年OpenCV2.5.0的問世!
OpenCV2.4.3的安裝方法:
下面來講講怎么安裝OpenCV2.4.3,由於本人最近用Qt比較多,所以就講下怎么在Qt下安裝OpenCV2.4.3。其實VS和Qt下是一樣的,步驟后面的部分可以參考本人前面的博文: 總結系列_7(opencv2.4.2+vs2010安裝簡介) 雖然那是針對2.4.2的,但是基本流程是一樣的。
安裝環境win32XP+opencv2.4.2+QtCreator2.5.1(方法同樣適用於微軟Vs開放的用戶)
其實opencv2.4.3比opencv2.4.2配置還要簡單,因為少了TBB部分配置部分。
步驟1: 下載OpenCV-2.4.3.exe
步驟2: 雙擊exe解壓到自己想安裝的目錄,我這來是解壓完后的目錄為:
C:\Qt\opencv
步驟3: 配置環境變量,在系統環境變量配置下面的環境變量,經過測試,只需要在系統變量下配置,並不需要在用戶變量下也配置,另外與opencv2.4.2不同的是,此時因為2.4.3版本的opencv內嵌了TBB的功能,所以取消了TBB直接安裝,這樣就不需要再配置TBB環境變量了。
變量名: 變量值:
PATH: C:\Program Files\opencv2.4.2\build\x86\vc10\bin
步驟4:打開QtCreator,新建一個純C++工程,且在工程文件夾下放入一張名為opencv.png的圖片(圖片名稱對應程序中的代碼即可),主函數代碼改為如下:
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; int main() { namedWindow( "show_image", WINDOW_AUTOSIZE ); Mat src = imread( "opencv.png" ); while(1) { imshow( "show_image", src ); char c = waitKey(0); if( c == 27 ) return 0; } return 0; }
步驟5:雙擊QtCreator工程右側的*.pro文件,輸入下面的內容:
INCLUDEPATH += C:\Qt\opencv\build\include \ C:\Qt\opencv\build\include\opencv \ C:\Qt\opencv\build\include\opencv2 LIBS += C:\Qt\opencv\build\x86\vc10\lib\opencv_core243d.lib \ C:\Qt\opencv\build\x86\vc10\lib\opencv_highgui243d.lib \ C:\Qt\opencv\build\x86\vc10\lib\opencv_imgproc243d.lib
步驟6:運行程序,顯示結果如下:
提示: 如果在還沒有配置好opencv環境變量的情況下,就打開了QtCreator工程,同時編好了步驟4的代碼,然后才開始配置opencv的環境變量,則這時候隨便怎么運行工程,就是沒有任何結果,單步調試后發現,直接進入主函數就出現錯誤This inferior stopped because it triggered an exception.如下所示:
這時候只需要把QtCreator軟件關掉重新打開即可,因為它還沒有識別到配置好的opencv。
參考文獻:
http://code.opencv.org/projects/opencv/wiki/ChangeLog
總結系列_7(opencv2.4.2+vs2010安裝簡介)