在MFC中显示opencv图像

本文详细介绍了在MFC环境中如何将IplImage或cv::Mat类型的图像显示到图片控件中。首先,通过加载图片文件将其转换为CvvImage类型;其次,对于cv::Mat图像,需要先将其转化为IplImage再进行转换。最后,提供了实例代码演示了如何在MFC中使用这些图像。同时,文中提到了新版本的OpenCV不支持CvvImage,需要自行导入CvvImage.h和CvvImage.cpp文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在MFC中,不能将突破从IplIamge或cv::Mat直接显示在图片控件中。需要先把IplImage或 cv::Mat先转换为CvvImage。

1.显示IplImage中图像

需要先把IplImage图像转换为CvvImage类型

IplImage* test_img = cvLoadImage("1.jpg",1);
CDC* pDC = GetDlgItem(IDC_TEST_IMG)->GetDC();
HDC hDC = pDC->GetSafeHdc();
CvvImage cimg;
cimg.CopyOf(test_img );
CRect rect;
GetDlgItem(IDC_TEST_IMG)->GetClientRect(&rect);
cimg.DrawToHDC(hDC, &rect);
ReleaseDC( pDC );
2.显示cv::Mat中图像

需要先把cv::Mat图像转化为IplImage图像,然后再转换为CvvImage类型。

Mat mat=imread("1.jpg");  
CDC* pDC = GetDlgItem(IDC_TEST_IMG)->GetDC();
HDC hDC = pDC->GetSafeHdc();
IplImage img = mat;
CvvImage cimg;
cimg.CopyOf( &img );
CRect rect;
GetDlgItem(IDC_STATIC)->GetClientRect(&rect);
cimg.DrawToHDC(hDC, &rect);
ReleaseDC( pDC );

Example:
这里大图片描述

注意:

  1. 新版本的opencv不支持CvvImage,需要网上自行下载CvvImage.h和CvvImage.cpp并自行导入项目中。下载地址:http://download.youkuaiyun.com/detail/computerme/9468957
  2. 上面示例代码中的IDC_TEST_IMG既可以是MFC中Picture控件的ID,也可以是其他控件的ID,如Static Text控件的ID。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值