opencv中两种常用的图像加载方式:IplImage, Mat,二者可相互转换。下面简要两种方式加载与显示图像的方式。
1 IplImage
#include <highgui.h>
using namespace cv;
//Load image
CString m_filepath = dlg.GetPathName();
IplImage* img_input = cvLoadImage((char*)m_filepath.GetBuffer(0),1); //这里也可以直接写cvLoadImage("***.jpg",1);
if(img_input == NULL)
{
AfxMessageBox(_T("Open file failure\n"), MB_ICONSTOP);
}
//Show image
cvNamedWindow("img_input", WINDOW_AUTOSIZE);
cvShowImage("img_input", img_input);
cvWaitKey(0);
cvReleaseImage(&img_input);
cvDestroyWindow("img_input");
2 Mat
#include "opencv2\opencv.hpp"
#include "opencv2\highgui.hpp"
#include "opencv2\imgproc\imgproc.hpp"
using namespace cv;
Mat image = imread("***.jpg",1); //此处注意文件路径转义字符
if(image.empty()){
std::cout<<"Open file failure."<<std::endl;
return -1;
}
namedWindow("src_img", WINDOW_AUTOSIZE);
imshow("src_img", image);
waitkey(0);
return 0;