问题描述
- 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*mImageData.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();
解决方案
不要沉啊,没有人知道吗?
解决方案二:
请问,您最后调出来了吗?我也碰到了类似的问题
时间: 2024-10-30 15:27:54