http://blog.csdn.net/tmxyz1950/article/details/19031893
http://blog.csdn.net/morewindows/article/details/8225783/
http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html
工具
vs2013 opencv2.4.9 64位win7操作系统
1.vs2013新建项目
安装完opencv后
需要把E:\tools\opencv2410\opencv\build\x64\vc12\bin
加到环境变量PATH中
否则运行时找不到dll文件
2设置属性
选择“空项目”》完成,接着找到“属性管理器”,如果没有的话就在“视图”》属性管理器
之后便是双击“Debug | Win32”打开“Debug属性页”,选择“VC++目录”
配置 include的的路径 为opencv解压路径下的
E:\vs\opencv\build\include
配置 include的的路径 为opencv解压路径下的
E:\vs\opencv\build\x64\vc12\lib
由于我的是64位win7,所以选x64
选连接器
Debug Property Pages
Linker
Input
Additional Dependencies
注意,我们选的是debug,所以每个lib都是以d结尾的,如果我们选的是release,则没有d
例如,重复上面所有的对release| Win32进行操作
有时候需要这是链接库,但是会慢
看情况设置吧,如果不选,第一次运行可能会报错
工具--》选项--》》调试--》符号
3,新建个显示图片的helloworld
在Source file上右键,新建 new item ,选c++.cpp
代码如下
#include <opencv2/opencv.hpp> using namespace std; #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//运行时不显示DOS框 int main() { const char *pstrImageName = "pp.jpg"; const char *pstrWindowsTitle = "Demo"; IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);//从文件中读取图像 cvNamedWindow(pstrWindowsTitle, 0); //创建窗口 cvShowImage(pstrWindowsTitle, pImage); //在指定窗口中显示图像 cvWaitKey();//等待按键事件 cvDestroyWindow(pstrWindowsTitle);//销毁对话框,释放空间 cvReleaseImage(&pImage); return 0; }
另外把一张jpg的图片放到工程目录下
运行之前设置64为运行
F5运行
附录:
其中的库为
opencv_core249d.lib
opencv_imgproc249d.lib
opencv_highgui249d.lib
后续参考http://wiki.opencv.org.cn/index.php/OpenCV_%E7%BC%96%E7%A8%8B%E7%AE%80%E4%BB%8B%EF%BC%88%E7%9F%A9%E9%98%B5/%E5%9B%BE%E5%83%8F/%E8%A7%86%E9%A2%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%BB%E5%86%99%E6%93%8D%E4%BD%9C%EF%BC%89
缩放图片的例子
#include <opencv2/opencv.hpp> using namespace std; #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//运行时不显示DOS框 int main() { const char *pstrImageName = "pp.jpg"; const char *pstrSaveImageName = "save.jpg"; double fScale = 0.314; //缩放倍数 CvSize czSize; //目标图像尺寸 const char *pstrWindowsTitle = "Demo"; IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);//从文件中读取图像 IplImage *pDstImage = NULL; czSize.width = pImage->width * fScale; czSize.height = pImage->height * fScale; pDstImage = cvCreateImage(czSize, pImage->depth, pImage->nChannels); cvResize(pImage, pDstImage, CV_INTER_AREA); cvNamedWindow("this title", CV_WINDOW_AUTOSIZE); cvShowImage("this title", pDstImage); cvNamedWindow(pstrWindowsTitle, 0); //创建窗口 cvShowImage(pstrWindowsTitle, pImage); //在指定窗口中显示图像 cvWaitKey();//等待按键事件 cvDestroyWindow(pstrWindowsTitle);//销毁对话框,释放空间 cvReleaseImage(&pImage); return 0; }
边缘检测:
// 图像的Canny边缘检测 //By MoreWindows (http://blog.csdn.net/MoreWindows) #include <opencv2/opencv.hpp> using namespace std; #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") IplImage *g_pSrcImage, *g_pCannyImg; const char *pstrWindowsCannyTitle = "边缘检测图(http://blog.csdn.net/MoreWindows)"; //cvCreateTrackbar的回调函数 void on_trackbar(int threshold) { //canny边缘检测 cvCanny(g_pSrcImage, g_pCannyImg, threshold, threshold * 3, 3); cvShowImage(pstrWindowsCannyTitle, g_pCannyImg); } int main() { const char *pstrImageName = "pp.jpg"; const char *pstrWindowsSrcTitle = "原图(http://blog.csdn.net/MoreWindows)"; const char *pstrWindowsToolBar = "Threshold"; //从文件中载入图像的灰度图CV_LOAD_IMAGE_GRAYSCALE - 灰度图 g_pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_GRAYSCALE); g_pCannyImg = cvCreateImage(cvGetSize(g_pSrcImage), IPL_DEPTH_8U, 1); //创建窗口 cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE); cvNamedWindow(pstrWindowsCannyTitle, CV_WINDOW_AUTOSIZE); //创建滑动条 int nThresholdEdge = 1; cvCreateTrackbar(pstrWindowsToolBar, pstrWindowsCannyTitle, &nThresholdEdge, 100, on_trackbar); //在指定窗口中显示图像 cvShowImage(pstrWindowsSrcTitle, g_pSrcImage); on_trackbar(1); //等待按键事件 cvWaitKey(); cvDestroyWindow(pstrWindowsSrcTitle); cvDestroyWindow(pstrWindowsCannyTitle); cvReleaseImage(&g_pSrcImage); cvReleaseImage(&g_pCannyImg); return 0; }
效果