首页 > 代码库 > OpenCV基础篇——图片显示

OpenCV基础篇——图片显示

继上文,做好opencv的配置以后,很多时候要用的就是显示图片,后面要讲的显示视频和一些测试也是建立在显示图片的基础上的,本次将分享opencv通过win32控制台显示图片和MFC显示图片:


一:OpenCV+win32


建立好win32空文档后,添加新项cpp文件后,直接上代码:


#include "highgui.h" //这个头文件很多时候都会用到,在opencv中
int main()
{
	IplImage* img = cvLoadImage( "E:\\lena.jpg");//加载图片,用iplimage类型的指针指向文件地址
	cvNamedWindow("Example", CV_WINDOW_AUTOSIZE );//命名一个example的窗口,窗口属性为CV_WINDOW_AUTOSIZE,还有其他属性,自己可以了解一下
	cvShowImage("Example", img );//在名字为example的窗口显示img
	cvWaitKey(0);//等待,如果不加这句,基本就是一闪而过
	cvReleaseImage( &img );//释放资源
	cvDestroyWindow("Example");//摧毁窗口
	return 0;


}


二:OpenCV+MFC


新建MFC项目,我选的是对话框,在对话框中拖入picture控件,假设id号为IDC_STATIC2,和一个按键button,假设name为button1


//以下为showimage函数,用来在指定的id控件中显示图片
void CtestDlg::ShowImage(IplImage* img, UINT ID)// ID 是Picture Control控件的ID号
{
         CDC* pDC=GetDlgItem(ID)->GetDC();// 获得显示控件的 DC
         HDC hDC=pDC->GetSafeHdc();// 获取 HDC(设备句柄) 来进行绘图操作

         CRect rect;
         GetDlgItem(ID)->GetClientRect(&rect);

         CvvImage cimg;
         cimg.CopyOf(img);    // 复制图片
         cimg.DrawToHDC(hDC,&rect);

         ReleaseDC(pDC);
}
void CtestDlg::OnBnClickedbutton1()//按键的响应函数
{
	IplImage* img = cvLoadImage( "E:\\lena.jpg");
	ShowImage(img, IDC_STATIC2);//调用showiamge函数在picture控件中显示图片
	cvReleaseImage( &img );//释放

}


注:我建立的名为test的项目,所以类也是test,,mfc新建过后就会出现很多代码,而且直接运行就可以看见界面,我这里主要给出关键的函数和实现,没有在类中的声明。。参考写就一定会成功的。



显示图片就基本结束了,如果有什么不对的,还请大家指出,相互学习