从图像边缘检测中制作蒙版?

时间:2014-08-22 01:30:04

标签: python-2.7 opencv image-processing computer-vision

我试图从右边的图像中拉出所有像素的像素。我决定对图像进行边缘检测,但现在我需要制作一个遮罩,这样我就可以抓住所有由鞋子外轮廓限定的像素。 opencv中有没有办法做到这一点?我查看了findContours函数,但是这只给了我一堆轮廓而无法制作一个蒙版?

enter image description here

1 个答案:

答案 0 :(得分:2)

如果floodfill没有为您提供足够的遮罩,另一种方法可能是从图1中获取边缘图像并应用扩张操作符然后应用关闭操作符。由于膨胀,面罩会略大于原件,尽管扩张有助于在应用关闭操作器时关闭黑点。

这是我获得的结果(我没有足够高的代表在答案中发布图像。这是链接): http://tinypic.com/view.php?pic=33jmpao&s=8#.U_cHm_mSz9s

以下链接也可能对您有用。 http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html

我使用的代码:

// Dilation
Mat se = getStructuringElement(CV_SHAPE_ELLIPSE, Size(9, 9));
dilate(edge_image, dst, se, Point(-1,-1), 1);

// Closing
Mat closed;
Mat element = getStructuringElement(MORPH_ELLIPSE, Size(19, 19));
morphologyEx(dst, closed, MORPH_CLOSE, element, Point(-1,-1), 3);

这是我在stackoverflow上的第一个答案。我希望它有所帮助,祝你好运! :)