在mfc中的picture控件上显示图片

本文介绍了如何在MFC应用程序的Picture控件中显示OpenCV的Mat图像。通过调用ShowMatImgToWnd函数,传入图片控件的句柄和Mat图像,可以将Mat格式的图片转换并显示在界面上。函数内部涉及到位图信息头的设置、内存缓冲区的分配以及StretchDIBits函数用于图像拉伸和显示。

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

程序如下
只需调用该函数ShowMatImgToWnd(CWnd* pWnd, cv::Mat img)就可以将所需的图片显示在picture控件上了,其中CWnd* pWnd参数中输入picture控件的句柄,可使用GetDlgItem(IDC_picture)等方法获取(IDC_picture为picture控件的ID),Mat img参数即为你要显示Mat格式的图片
void ShowMatImgToWnd(CWnd* pWnd, cv::Mat img)
{    
    if(img.empty())  
        return;  

    CRect drect;       
    pWnd->GetClientRect(&drect);    //(drect);  (&drect);  两种方式均可    

    CClientDC dc(pWnd);
    HDC hDC =dc.GetSafeHdc();

    //内存中的图像数据拷贝到屏幕上
    BYTE *bitBuffer           = NULL;
    BITMAPINFO *bitMapinfo = NULL;

    int ichannels =img.channels();
    if( ichannels == 1)
    {
        bitBuffer  = new BYTE[40+4*256]; 
    }
    else if( ichannels == 3)
    {
        bitBuffer  = new BYTE[sizeof(BITMAPINFO)]; 
    }
    else
    {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值