基于MFC单文档下调用opencv库并将图片效果显示在单文档窗口

      对比于网络上的MFC对话框显示图像处理的效果,按下控件就会有对话框的弹出,为此为了美观和方便,便制作了基于单文档调用opencv库的方式,并使图片处理效果一直悬浮在单文档的窗口中。 opencv库对于二维图像处理有着极大的方便,此篇博客主要是为了实现opencv库与MFC单文档的较为完整的配合。

     在新的单文档中用opencv显示图像,主要用到了cvvImage类,cvvImage类包装了IplImage结构并提供了一些相关操作的函数,在C项目名view.h头文件中引用cvvImage.h头文件,同时须在头文件和源文件中添加cvvImage.h和cvvImage.cpp文件。在C项目名view.h头文件加入cvvImage对象。

代码如下:

private:
 cvvImage image;


为了实现能打开任意图像不同的图片格式,在打开图像函数::OnOpen()中添加如下代码:
   
   

显示图像便在view::OnDraw()中添加如下代码:

CopencvtuxiangDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;
	if(cimg.GetImage()!=NULL)
	{

	
	CRect r;
	GetClientRect(&r);
	SetRect(r, 0, 0, cimg.Width(), cimg.Height());   //将cimg显示出来
	cimg.DrawToHDC(pDC->GetSafeHdc(), r);
	//cimg.Destroy();
	// TODO: 在此处为本机数据添加绘制代码
}
显示效果如下:

之后还将一些opencv关于图像处理的函数调用进去,实现一个个功能变换,先将打开的原图写入inwrite到“yuantu”中,之后再进行读出inread。

例如canny边缘检测:


还有一些其他变换就不一一演示了;

     

      代码在上传资源中:http://download.csdn.net/my








  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值