fu1142297317 2015-09-25 08:57 采纳率: 50%
浏览 1731
已采纳

vs2010 mfc 没有picturebox怎么办

vs2010 mfc 工具栏中没有picturebox怎么添加,本人编写opencv程序时需要讲图片显示在对话框中,网上很多是用picturebox做的,但我的vs2010没有picturebox

  • 写回答

4条回答 默认 最新

  • lx624909677 2015-09-25 15:49
    关注

    OpenCV中得图可以显示在picture control上,只不过需要把mat对象转成CImage一下,很简单

     void MatToCImage( Mat &mat, CImage &cImage)
    {
        //create new CImage
        int width    = mat.cols;
        int height   = mat.rows;
        int channels = mat.channels();
    
        cImage.Destroy(); //clear
        cImage.Create(width, height,8*channels ); //默认图像像素单通道占用1个字节
    
        //copy values
        uchar* ps;
        uchar* pimg = (uchar*)cImage.GetBits(); //A pointer to the bitmap buffer
        int step = cImage.GetPitch();
    
        for (int i = 0; i < height; ++i)
        {
            ps = (mat.ptr<uchar>(i));
            for ( int j = 0; j < width; ++j )
            {
                if ( channels == 1 ) //gray
                {
                    *(pimg + i*step + j) = ps[j];
                }
                else if ( channels == 3 ) //color
                {
                    for (int k = 0 ; k < 3; ++k )
                    {
                        *(pimg + i*step + j*3 + k ) = ps[j*3 + k];
                    }           
                }
            }   
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据