/*********************************************** *功能:在當前窗口中顯示IplImage的圖像 *輸入參數:src 指向圖片的指針 *輸出參數:無 *返回值:無 *做者:張建成 ***********************************************/ void ShowImage(IplImage *src) { if(src->nChannels==3)// color { TheImage=cvCloneImage(src); IplImage *TheImage = src; CvSize ImgSize; ImgSize.width = TheImage->width; ImgSize.height = TheImage->height; CClientDC dc(this); CDC * pDC = &dc; int res = StretchDIBits(pDC->GetSafeHdc(), 0, 0,int(TheImage->width),int(TheImage->height), 0, 0, TheImage->width, TheImage->height, TheImage->imageData, (BITMAPINFO*)bmi, DIB_RGB_COLORS,SRCCOPY); } else { if(src->nChannels==1)// gray { IplImage *grayImg=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,3); IplImage * planes[3] ={0,0,0}; for(int i=0;i<3;i++) { planes[i] = cvCreateImage(cvSize(src->width,src->height),8,1); (planes[i]->imageData)= (src->imageData); } cvCvtPlaneToPix(planes[0],planes[1],planes[2],0,grayImg); IplImage * TheImage=cvCloneImage(grayImg); CvSize ImgSize; ImgSize.width = TheImage->width; ImgSize.height = TheImage->height; CClientDC dc(this); CDC * pDC = &dc; int res = StretchDIBits(pDC->GetSafeHdc(),0,0,int(TheImage->width),int(TheImage->height), 0,0,TheImage->width,TheImage->height,TheImage->imageData, (BITMAPINFO*)bmi,DIB_RGB_COLORS,SRCCOPY); } } }