今天依照网上的教程尝试了一下最基本的图片显示。
首先想说一下编译时出现的问题,开始时在编译时会出现无法识别cvReleaseImage的情况,是因为没有在配置中包含相应的core的库文件。
加进去就解决这个问题了。
另一个问题是在编译通过以后提示程序拒绝访问,经网上查找好像和英雄联盟有关。。貌似是LOL关闭了什么调试功能,总之重启一下电脑就好了。
最后放上相应代码:
#include <iostream>
//#include <opencv/cv.h>
//#include <opencv/cxcore.h>
#include <opencv2/highgui/highgui.hpp> //显示图片
int main()
{
IplImage* src = cvLoadImage ("D:\\1.jpg");
cvNamedWindow("picture");
cvShowImage("picture",src);
cvWaitKey();
cvReleaseImage(&src);
cvDestroyWindow("picture");
return ;
}
现在还是没有搞清楚包含库的原理,一开始根据视频来做时把 include <opencv/cv.h> 写在里面,现在注释以后发现也没有问题啊。随着更多接触OpenCV以后可能会慢慢理解这些吧。
更新:
今天尝试了另外一种显示图片的办法,代码如下:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main ()
{
Mat img = imread ("D:\\1.jpg");
imshow ("Pic",img);
waitKey();
return ;
}
来源于《OpenCV3 编程入门》一书,看起来似乎更简单一些。
补充:
今天好奇查了一下cvShowImage和imshow的区别,在论坛中查到的说法是“imshow是OpenCV2.0版本之后从本来的C接口的cvshowimage转换到C++的替代物”,具体的解释在OpenCV文档资料中也有所说明。