妮儿1 2015-04-09 09:30 采纳率: 0%
浏览 2394

VS与MATLAB混合编程在mfc中用opencv显示图像

我想用vs与MATLAB混合编程实现图像可视化界面,编译好的MATLAB程序是shiyan,编译成功后要在vs中mfc用opencv显示图像,但是最终处理后的图像显示不出来,想请大家帮忙看下我的程序哪里出问题了?先谢谢大家了,还有我想问问,我输入的是灰度图也就是在cmat中是1通道,是不是应该跟MATLAB显示出来的数是一样的?怎么把图像矩阵再vs中显示出来呢?谢谢大家,谁知道希望帮帮我!
if( !lvboInitialize())

{

printf("Could not initialize !");

return ;

}

mwArray mwdisp(image->height*image->width,mxUINT8_CLASS);
//IplImage* pTemp = cvCreateImage(cvSize(image->height, image->width), IPL_DEPTH_8U, 1); //n*m创建图像
  cvCopy(image, pTemp);//m*n->n*m,复制image中的数据到ptemp中
    CvMat* pMat = cvCreateMat(image->height, image->width, CV_8UC1);//pmat:n*m分配矩阵空间
    cvConvert(image, pMat);//pmat:n*m,将图像转化为矩阵,任意类型数据的矩阵

    mwdisp.SetData(pMat->data.ptr, pMat->height*pMat->width);

mwArray ImageData(image->height,image->width ,mxDOUBLE_CLASS);  

shiyan(1,ImageData,mwdisp);

IplImage* pTempL0 = cvCreateImage(cvSize(image->height, image->width), IPL_DEPTH_64F, 1); //n*m
CvMat* pMatL0 = cvCreateMat(pTempL0->height, pTempL0->width, CV_64FC1);//n*m

    ImageData.GetData(pMatL0->data.db,pMatL0->height*pMatL0->width);         
    cvConvert(pMatL0,pTempL0);//mat->iplimage       
    IplImage* pImg =cvCreateImage(CvSize(cvGetSize(image)),IPL_DEPTH_64F,1);//m*n
    cvCopy(pTempL0, pImg); //n*m->m*n
    IplImage* result =cvCreateImage(CvSize(cvGetSize(image)),IPL_DEPTH_8U,1);
    cvConvertScale(pImg,result);
    cvNamedWindow("去噪后图像",CV_WINDOW_AUTOSIZE);
    cvShowImage("去噪后图像",result);
    cvWaitKey(0);

DrawPicToHDC(result, IDC_showimage2);
lvboTerminate();

  • 写回答

2条回答 默认 最新

  • 妮儿1 2015-04-10 08:35
    关注

    不要沉啊,没有人知道吗?

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料