天天看点

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