MFC+OPENCV+显示MAT类型图像

本文介绍了如何在MFC应用程序中显示OpenCV的Mat类型图像。通过showMat()函数解决IplImage*到Mat类型的转换问题,避免了在MFC界面中直接使用DrawMatToPic可能遇到的问题。同时,提到了在MFC中嵌入opencv的图形窗口,可以通过调用imshow()函数,指定窗口名为"view"来显示图像。

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

MFC显示图像到界面,可以用链接中的DrawMatToPic,有时会出现IplImage*类型转换问题,因为用opencv做后续图像处理,所以统一使用Mat类型,可以showMat()函数进行显示。在MFC中嵌入opencv窗口”view”后,其他地方调用imshow(”view“,图像名)。

int Ctest2Dlg::ShowMat(cv::Mat img, HWND hWndDisplay)
{
    if (img.channels()<3)`
    {
        return -1;
    }

    //构造将要显示的Mat版本图片
    RECT rect;
    ::GetClientRect(hWndDisplay, &rect);
    cv::Mat imgShow(abs(rect.top - rect.bottom), abs(rect.right - rect.left), CV_8UC3);
    resize(img, imgShow, imgShow.size());

    //在控件上显示要用到的CImage类图片
    ATL::CImage CI;
    int w = imgShow.cols;//宽  
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值