子窗口正常弹出,但是无法利用OpenCV在子窗口中实现全局矩阵的显示?
利用MFC/OpenCV实现图像处理时遇到的问题,如下:在主窗口中添加按钮,点击按钮时会有对应的子窗口弹出,想要在子窗口弹出的“瞬间”利用OpenCV显示父窗口已经处理好...
利用MFC/OpenCV实现图像处理时遇到的问题,如下:
在主窗口中添加按钮,点击按钮时会有对应的子窗口弹出,想要在子窗口弹出的“瞬间”利用OpenCV显示父窗口已经处理好的矩阵,显示失败?!
但是,可以正常显示单个的矩阵元素的数值到静态控件上。
(已经有专门的类处理子窗口的显示)
谢谢了!
子窗口用于显示的显示代码如补充问题所示,追问部分放不下了,
//显示原始能量图像
CvMat Ma = cvMat(size.x,size.y,CV_32SC1,data_32_ptr);
//CvMat转换为IplImage,以用于CvvImage的显示功能
IplImage* srcImage_Engery = cvCreateImage(cvGetSize(&Ma),IPL_DEPTH_32S,1);
// 调整显示象素的区间,保证最大值为白色,最小值为黑色
cvScale(srcImage_Engery, srcImage_Engery, 1.0/(MAX_32-MIN_32), 1.0*(-MIN_32)/(MAX_32-MIN_32));
cvGetImage(&Ma,srcImage_Engery);
//获取显示区域
CDC *pDC_Engery = GetDlgItem(IDC_STATIC_Spots)->GetDC();
HDC hDC_Engery = pDC_Engery->GetSafeHdc();
CRect rect_Engery;
GetDlgItem(IDC_STATIC_Spots)->GetClientRect(&rect_Engery);
//显示
CvvImage cimg_Engery;
cimg_Engery.CopyOf(srcImage_Engery);
cimg_Engery.DrawToHDC(hDC_Engery,&rect_Engery);
ReleaseDC(pDC_Engery); 展开
在主窗口中添加按钮,点击按钮时会有对应的子窗口弹出,想要在子窗口弹出的“瞬间”利用OpenCV显示父窗口已经处理好的矩阵,显示失败?!
但是,可以正常显示单个的矩阵元素的数值到静态控件上。
(已经有专门的类处理子窗口的显示)
谢谢了!
子窗口用于显示的显示代码如补充问题所示,追问部分放不下了,
//显示原始能量图像
CvMat Ma = cvMat(size.x,size.y,CV_32SC1,data_32_ptr);
//CvMat转换为IplImage,以用于CvvImage的显示功能
IplImage* srcImage_Engery = cvCreateImage(cvGetSize(&Ma),IPL_DEPTH_32S,1);
// 调整显示象素的区间,保证最大值为白色,最小值为黑色
cvScale(srcImage_Engery, srcImage_Engery, 1.0/(MAX_32-MIN_32), 1.0*(-MIN_32)/(MAX_32-MIN_32));
cvGetImage(&Ma,srcImage_Engery);
//获取显示区域
CDC *pDC_Engery = GetDlgItem(IDC_STATIC_Spots)->GetDC();
HDC hDC_Engery = pDC_Engery->GetSafeHdc();
CRect rect_Engery;
GetDlgItem(IDC_STATIC_Spots)->GetClientRect(&rect_Engery);
//显示
CvvImage cimg_Engery;
cimg_Engery.CopyOf(srcImage_Engery);
cimg_Engery.DrawToHDC(hDC_Engery,&rect_Engery);
ReleaseDC(pDC_Engery); 展开
1个回答
展开全部
你父窗口处理好的矩阵你直接用指针传递
如
Cvimage *img;
你直接将img传递就好了啊
显示失败 是否你的hdc 或cdc没有处理好 或者你画面通道定义错误 具体的情况你说下
如
Cvimage *img;
你直接将img传递就好了啊
显示失败 是否你的hdc 或cdc没有处理好 或者你画面通道定义错误 具体的情况你说下
追问
父窗口的矩阵用的是全局变量,没有用指针传递?!这样应该也可以吧?
子窗口用于显示的显示代码如补充问题所示,追问部分放不下了,
(并且把这些代码放到了子窗口类的OnInitDialog()中,但是MSDN解释说:OnInitDialog()中的代码是在子窗口显示之前运行的,这样的话,子窗口弹出时就不会显示图像了?!,如果不放在OnInitDialog()中,这些代码放到哪个函数中合适啊?!)
追答
将代码添加到按键事件去
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询