vs与MATLAB混合编程实现图像处理

我想要vs与MATLAB混合编程实现图像处理的可视化界面,调用的shiyan1的程序后为什么不会显示图像呢?我不知道到底是哪里出问题了,运行程序不显示哪里有错误就是不会显示图像,望大家帮帮我,谢谢了。下面是我的程序:
void CMFCApplication17Dlg::OnClickedButton1()
{
if( !lvboInitialize())

{

printf("Could not initialize !");

return ;

}
IplImage image=NULL;
if(image)
cvReleaseImage(&image);
image = cvLoadImage("H:\lena.bmp",1);
if (image==0)
MessageBox("Reading Failed");
mwArray mwdisp(image->height*image->width,mxUINT8_CLASS);
IplImage
pTemp = cvCreateImage(cvSize(image->height, image->width), IPL_DEPTH_8U, 1); //n*m创建图像
cvTranspose(image, pTemp);//m*n->n*m,复制image中的数据到ptemp中
CvMat* pMat = cvCreateMat(image->height, image->width, CV_8UC1);//pmat:n*m分配矩阵空间

   cvConvert(pTemp, pMat);//pmat:n*m,将图像转化为矩阵,任意类型数据的矩阵

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

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

shiyan1(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* pL0SmoothImg =cvCreateImage(CvSize(cvGetSize(image)),IPL_DEPTH_64F,1);//m*n
    cvCopy(pTempL0, pL0SmoothImg); //n*m->m*n
    IplImage* result =cvCreateImage(CvSize(cvGetSize(image)),IPL_DEPTH_8U,1);
      double minVal;

double maxVal;
cvMinMaxLoc(pL0SmoothImg, &minVal, &maxVal);
printf("%f ",minVal);
printf("%f",maxVal);
// Normalize image (0 - 255) to be observed as an u8 image
double scale = 255/(maxVal - minVal);
double shift = -minVal * scale;
cvConvertScale(pL0SmoothImg,result,scale,shift);//
cvNamedWindow("去噪后图像",CV_WINDOW_AUTOSIZE);
cvShowImage("去噪后图像",image);
cvWaitKey(0);
DrawPicToHDC(image, IDC_showimage2);

cvReleaseImage( &pTempL0 );
cvReleaseImage( &pL0SmoothImg);
cvReleaseImage( &result );
lvboTerminate();
}

看下matlab的虚拟机环境有没有部署正确

你这个是opencv里面用了matlab生成的dll窗口?
你看看这个有用没?
http://blog.csdn.net/wangyaninglm/article/details/39188535

void Cmdi_matlab_movewindow20140810View::OnMatlab()
{
    // TODO: 在此添加命令处理程序代码
//  CProcessCtrl m_process;
// 
//  m_process.DoModal();
    CProcessCtrl *m_process = new CProcessCtrl();
    m_process->Create(IDD_PROCESS,this);
    m_process->ShowWindow(SW_SHOW);
    m_process->m_processctrl.SetPos(10) ;

    if( !myfunInitialize())
    {
        MessageBox(_T("初始化失败"));
    }


    m_process->m_processctrl.SetPos(30) ;
    fun();

    // terminate MCR
    mclTerminateApplication();
    CString wnd_name = "Topo Image";

    m_process->m_processctrl.SetPos(40) ;

    HWND hFig=::FindWindow(NULL,wnd_name);//wnd_name为matlab figure的名称,
    //此处需循环多次才能得到句柄,不知为啥
    while(hFig==NULL)
    {
        hFig=::FindWindow(NULL,wnd_name);

    }
    m_process->m_processctrl.SetPos(60) ;
    //::ShowWindow(hFig, SW_HIDE); 
    ModifyStyle(hFig,WS_POPUP,WS_CHILD,NULL); 



    long IStyle=::GetWindowLong(hFig,GWL_STYLE); //获得figure的属性

    //ModifyStyle(hFig,WS_POPUP,WS_CHILD,NULL); 

    //CWnd* pMainWnd =AfxGetMainWnd();
    //CRect client_rect;
    CRect figure_rect;
    CWnd *myfigure = GetDlgItem(IDC_STATIC_MATLABWND);

    myfigure->GetClientRect(&figure_rect);
    //pMainWnd->GetClientRect(&client_rect);

    long fig_width=figure_rect.Width();
    long fig_height=figure_rect.Height();


    m_process->m_processctrl.SetPos(80) ;

    ::SetParent(hFig,myfigure->GetSafeHwnd());//设置figure的父窗口
    ::SetWindowLong(hFig,GWL_STYLE,IStyle & (~WS_CAPTION) & (~WS_THICKFRAME));//设置figure的属性,去掉标题栏

    ::SetWindowPos(hFig,NULL,0,0,fig_width,fig_height,SWP_NOZORDER|SWP_NOACTIVATE);//

    m_process->UpdateData(false);
    m_process->DestroyWindow();

    ::ShowWindow(hFig,SW_SHOW);  //显示设置完后的figure
    ::SetForegroundWindow(this->m_hWnd);


    //::UpdateWindow(hFig); //刷新
    //::UpdateWindow(myfigure->m_hWnd); //刷新


}