我目前正在大学学习计算机视觉模块。我想从理论上了解计算机视觉中的轮廓以及它们的用途。
4 回答
轮廓只是图像中对象的边界。轮廓的各种表示(例如链码、傅里叶描述符、形状上下文)用于识别或分类对象。
这假设您有办法分割出一个对象并找到它的边界,这本身并不是一个小问题。用于寻找边界的一类特殊算法称为活动轮廓或蛇。这是你要问的吗?
轮廓是具有明确边缘的物体周围的边界,这意味着机器能够计算梯度差异(像素值大小的显着差异),尝试查看相同的差异是否继续并形成可识别的形状并绘制它周围的边界。Opencv 可以为很多形状做到这一点,它们显示在下面的链接中。
想象一下你是如何用你的眼睛做的。你在一个房间里,当你看到一个框架、一个显示器或一个球时,你会在脑海中创建一个边界。轮廓在 opencv 中的工作方式完全相同。正如@Dima 所说,为此目的使用了各种算法。
如果您需要示例以及如何在 opencv 中表示轮廓,这里有一个链接。
希望这可以帮助。
Open CV python为我们提供了轮廓和几个边缘检测功能来识别对象的几个属性。轮廓可以简单地解释为连接所有连续点(沿边界)的曲线,具有相同的颜色或强度。
二值图像在轮廓检测中的使用:
轮廓是形状分析和对象检测和识别的有用工具。我们采用二值图像(换句话说,像素只有 2 个可能值的图像)。所以在找到轮廓之前,应用阈值或精确边缘检测。
寻找轮廓的步骤:
1)转换为灰度
2)转换为二值图像
3)寻找轮廓
绘制轮廓:
要绘制轮廓,使用 cv2.drawContours 函数。只要您有边界点,它也可以用于绘制任何形状。
轮廓的属性:
1)寻找区域。
2)找到周长