CvvImage cimg;
cimg.CopyOf(img);
其中img肯定是个 单通道的IplImage图像,cimg.CopyOf(img);出错。把img改成一个3通道的图像就没有问题了,是不是CopyOf只能拷3单通道的?
我没有办法,又必须用CvvImage ,我用如下笨方法,结果是可以的
CvvImage cimg;
cimg.Create(img->width,img->height,8);
IplImage* timg = cimg.GetImage();
timg->imageData = img->imageData;//img为单通道
我在论坛上发帖求助。我又尝试搜了一下,看又有其他人遇到此问题,
结果果然有哥们比我先遇到了,呵呵。
另外如果有用到
CvvImage 的
CopyOf()函数;而调试出错,估计都是这个问题。请注意!
注:
CvvImage 的
CopyOf()函数常
用于在控件 ID上显示图片。转一段代码
void CTestDlg::DrawPicToHDC(IplImage *img, UINT ID)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf(img);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
}HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf(img);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
没有评论:
发表评论