我有一张源图像。我需要从中分割出特定部分并将其保存为另一张图像。我已经得到了需要分割的部分的Canny轮廓,但是如何使用它从源图像中切割出该部分呢?我已经附上了源图像和Canny边缘轮廓。请帮助我并提供解决方案。
编辑-1:Alexander Kondratskiy,这是您所说的填充边界吗?
现在我该如何将轮廓内外的区域分成两个独立的图像?
编辑3- 我想到了“与运算”掩模和轮廓线源图像。由于我正在使用C语言,所以遇到了一些困难。这是我用来进行与运算的代码:
hsv_gray = cvCreateImage( cvSize(seg->width, seg->height), IPL_DEPTH_8U, 1 );
cvCvtColor( seg, hsv_gray, CV_BGR2GRAY );
hsv_mask=cvCloneImage(hsv_gray);
IplImage* contourImg =cvCreateImage( cvSize(hsv_mask->width, hsv_mask->height), IPL_DEPTH_8U, 3 );
IplImage* newImg=cvCreateImage( cvSize(hsv_mask->width, hsv_mask->height), IPL_DEPTH_8U, 3 );
cvAnd(contourImg, hsv_mask,newImg,NULL);
我总是遇到大小或类型不匹配的错误。我调整了大小,但似乎无法调整类型,因为一个(hsv_mask)是1通道,而其他通道是3个。
@kanat- 我也尝试了你的boundingrect,但似乎无法以C格式正确使用。