用OpenCV载入并显示图片
首先我们在头文件里定义变量
public:
IplImage* src;
IplImage* dst;
在OnInitDialog()函数中初始化:dst = NULL;src = NULL;
然后我们新建一个按钮——载入并显示图片,然后添加它的鼠标单击消息响应函数。代码如下:
CString fileName;
//打开文件对话窗口
CFileDialog dlg(TRUE,"jpg","*.jpg",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"JPEG文件(*.jpg)|*.jpg||",NULL);
//从文件对话窗口中打开图像
if(dlg.DoModal()!=IDOK)
return;
fileName = dlg.GetPathName();
std::string tempName = (LPCSTR)CStringA(fileName);
const char* bbb = tempName.c_str();
if( (src = cvLoadImage(bbb, CV_LOAD_IMAGE_ANYCOLOR)) == 0 )
return;
dst= cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
cvCopy(src, dst, NULL);
cvNamedWindow( "显示图像", 1 );//创建窗口
cvShowImage( "显示图像", src );//显示图像
最后在对话框的OnDestroy事件中释放所有资源,并关闭预览窗口
void CDisplayDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: 在此处添加消息处理程序代码
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvDestroyAllWindows();
}
编译运行,任意打开一幅图片,效果如下图:
注意,事先一定要正确配置OpenCV!