我想用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();