【发布时间】:2011-12-02 07:09:17
【问题描述】:
做的时候:
IplImage blobimg = image;
IplImage *labelImg=cvCreateImage(cvGetSize(&blobimg), IPL_DEPTH_LABEL, 1);
IplImage *test=cvCreateImage(cvGetSize(&blobimg), IPL_DEPTH_8U, 3);
unsigned int result=cvLabel(&blobimg, labelImg, blobs);
cvRenderBlobs(labelImg, blobs, &blobimg,test,CV_BLOB_RENDER_BOUNDING_BOX);
Mat imgMat(test);
imshow("Depth", imgMat);
我注意到我的测试变量是空的:
我想我必须这样做:
cvRenderBlobs(labelImg, blobs, &blobimg,&blobimg,CV_BLOB_RENDER_BOUNDING_BOX);
但 cvRenderBlobs destImg 必须有 3 个通道和 IPL_DEPTH_8U,而我的图像只有 1 个通道,因为它是灰色图像。
谁能告诉我这是为什么以及如何解决这个问题?
编辑
图片来源:
Mat *depthImage = new Mat(480, 640, CV_8UC1, Scalar::all(0));
Mat image = *depthImage;
【问题讨论】:
-
我使用的不是 cvBlobsLib,而是 cvBlobs。它们不一样:)。
-
对不起 - 是的,我意识到我的错误并删除了评论
标签: c++ image-processing opencv computer-vision