6行代码将图片显示到MFC图像控件上

本文在博主知乎的地址:https://zhuanlan.zhihu.com/p/24156588

最近在做一个实验,需要将图像cv::Mat显示到MFC上,这个操作有点难度,百度还有google的解决办法都不是很满意,意外在一个开源软件(背景减除算法库BGSLibrary-A Background Subtraction Library )里面看到了相关操作,现分享出来,实现效果见图:

//初始化部分,主要功能好像就是把cv的窗口和MFC的窗口联系起来,具体不太懂,有谁知道的,可以解答下哈

cv::namedWindow("Display", 1);//命名一个窗口"Display"

HWND hWnd = (HWND)cvGetWindowHandle("Display");//获得这个窗口的句柄

HWND hParent = ::GetParent(hWnd);//貌似得到这个窗口的父句柄

::SetParent(hWnd, GetDlgItem(IDC_STATIC_ImgDisplay)->m_hWnd);//貌似给MFC图片控件设置和cv窗口"Display"一样的父句柄

::ShowWindow(hParent, SW_HIDE);//设置窗口的显示状态:隐藏窗口并激活其他窗口。不太懂

初始化算5行代码。

//显示部分

do

{

do something..//获取图片

cv::resize(,,)//更改图片尺寸以适应图片控件尺寸

cv::imshow("Display", cv::Mat x);//显示,直接通过cv函数显示到MFC上

cv::waitKey(20);

}while(bool x);

显示部分只能算1行有效代码,其他的代码只是为了演示,我没有骗人吧,嘎嘎,大家快来试一试。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值