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

来源:互联网 发布:淘宝新上的宝贝找不到 编辑:程序博客网 时间:2024/05/19 00:56

本文在博主知乎的地址: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行有效代码,其他的代码只是为了演示,我没有骗人吧,嘎嘎,大家快来试一试。

原创粉丝点击