天天看點

Qt + VS2010 下使用Opencv

1 先去官網下載下傳OpenCV,這使用的是win 2.3版本的。

​​http://ncu.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.3/OpenCV-2.3.0-win-superpack.exe​​

2 下載下傳後,解壓檔案 D:\OpenCV

3 *.pro檔案添加

INCLUDEPATH +=D:\OpenCV\opencv\build\include\opencv2 \
D:\OpenCV\opencv\build\include\opencv \
D:\OpenCV\opencv\build\include

CONFIG(release,debug|release)
{
    LIBS += D:\OpenCV\opencv\build\x86\vc10\lib\opencv_calib3d230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_contrib230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_core230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_features2d230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_flann230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_gpu230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_highgui230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_imgproc230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_legacy230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ml230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_objdetect230.lib \
 #   D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ts230.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_video230.lib
}
CONFIG(debug,debug|release)
{
    LIBS +=D:\OpenCV\opencv\build\x86\vc10\lib\opencv_calib3d230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_contrib230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_core230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_features2d230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_flann230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_gpu230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_highgui230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_imgproc230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_legacy230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ml230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_objdetect230d.lib \
 #   D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ts230d.lib \
    D:\OpenCV\opencv\build\x86\vc10\lib\opencv_video230d.lib
}      

4 在.h檔案裡添加

#include<opencv2/opencv.hpp>
using namespace cv;      

5 測試程式 圖像反色

char* filename="1.png";
   int i,j,k;
    //載入圖像
    IplImage * img=cvLoadImage(filename,1);
   CvScalar s;
    int height= img->height;
    int width= img->width;
    int channel= img->nChannels;
    printf("the image is %d X %d wiht %d channels",height,width,channel);
    for(i=0;i<height;i++)
    for(j=0;j<width;j++)
    {
        s=cvGet2D(img,i,j); // get the (i,j) pixel value
        for(k=0;k<channel;k++)
        s.val[k]=255-s.val[k];
        cvSet2D(img,i,j,s); // set the (i,j) pixel value
    }

    cvNamedWindow( "win", CV_WINDOW_AUTOSIZE);//建立視窗
    cvShowImage( "win", img );//顯示圖像
    cvWaitKey(0); //等待按鍵
    cvDestroyWindow( "Image" );//銷毀視窗
    cvReleaseImage( &img); //釋放圖像      

6 效果圖

Qt + VS2010 下使用Opencv
Qt + VS2010 下使用Opencv

注意:路徑不要有中文,空格,如果編譯沒有錯誤,運作時提示缺少 *.dll,就把 *.dll拷貝到exe的目錄下,還有在我的*.pro裡注釋了2行,把231改成了230。

----續

如果隻是VS 使用opencv\build\x86\vc10\lib 和opencv\build\include\opencv2作為lib和include

同時在Release模式下,項目屬性--附加依賴項裡添加

opencv_calib3d230.lib

opencv_contrib230.lib

opencv_core230.lib

opencv_features2d230.lib

opencv_flann230.lib

opencv_gpu230.lib

opencv_highgui230.lib

opencv_imgproc230.lib

opencv_legacy230.lib

opencv_ml230.lib

opencv_objdetect230.lib

opencv_video230.lib

同時在exe目錄下添加dll