python opencv提取轮廓与抠图
时间: 2023-07-27 11:03:07 浏览: 312
Opencv 轮廓提取
Python中的OpenCV库是一个广泛使用的计算机视觉库,提供了许多图像处理和分析的功能。其中包括轮廓提取和抠图的功能。
在OpenCV中,可以使用函数`findContours()`来提取图像中的轮廓。该函数接受一个二值化图像作为输入,并返回一个包含所有轮廓点的列表。具体步骤如下:
1. 将图像进行二值化处理,使得背景为黑色(像素值为0),感兴趣的对象为白色(像素值为255)。
2. 使用`findContours()`函数提取轮廓。该函数会修改输入图像,所以需要首先对输入图像进行备份。
3. `findContours()`函数返回两个值:轮廓点的列表和层级信息。我们只需要轮廓点的列表,可以使用索引0来获取。
4. 可以通过绘制轮廓来查看或显示轮廓,使用`drawContours()`函数可以实现该功能。
抠图是将感兴趣的对象从图像中分离出来形成一个新的图像。可以使用OpenCV中的函数`bitwise_and()`来实现抠图。具体步骤如下:
1. 选择一个感兴趣的对象,并使用函数`findContours()`提取其轮廓。
2. 创建一个与原图像尺寸相同的空白图像(全黑)作为抠图结果。
3. 使用函数`drawContours()`将感兴趣的对象轮廓绘制到空白图像上。
4. 使用`bitwise_and()`函数将原图像和抠图结果进行按位与操作,将背景部分变为黑色。可以使用反色操作将背景变为白色。
5. 得到的结果即为抠图后的图像。
总而言之,Python中的OpenCV库提供了丰富的图像处理功能,使用其提供的函数可以轻松实现图像的轮廓提取和抠图操作。
阅读全文