我目前正在大学学习计算机视觉模块。 我想从理论上理解计算机视觉中的轮廓以及它们的用途。
答案 0 :(得分:7)
轮廓只是图像中对象的边界。轮廓的各种表示(例如,链码,傅里叶描述符,形状上下文)用于识别或分类对象。
这假设你有办法分割出一个对象并找到它的边界,这本身并不是一个小问题。用于查找边界的一类特定算法称为活动轮廓或蛇。这是你在问什么?
答案 1 :(得分:5)
Open CV python为我们提供轮廓和多种边缘检测功能,以识别对象的多种属性。轮廓可以简单地解释为连接所有连续点(沿边界)的曲线,其颜色或强度相同。
轮廓是用于形状分析以及对象检测和识别的有用工具。我们采用二值图像(换句话说,其像素只有两个可能值的图像),因此在找到轮廓之前,应用阈值或Canny边缘检测。
1)转换为灰度
2)转换为二进制图像
3)找到轮廓
要绘制轮廓,请使用cv2.drawContours函数。只要有边界点,它也可以用来绘制任何形状。
1)查找区域。
2)寻找周长
答案 2 :(得分:0)
轮廓是具有清晰边缘的物体周围的边界,这意味着机器能够计算梯度差异(像素值幅度的显着差异),尝试查看相同差异是否继续并形成可识别的形状并在其周围绘制边界。 Opencv可以处理很多形状,这些形状显示在下面的链接中。
想象一下如何用眼睛做。您在房间里,当您看到框架,监视器或球时,就会在您的脑海中创造一个边界。轮廓在opencv中的工作方式完全相同。正如@Dima所说,为此目的使用了各种算法。
如果您需要示例以及opencv中轮廓的表示方式,请参见link。
希望这会有所帮助。
答案 3 :(得分:0)
Here,您可以阅读 opencv 的官方文档,他们说轮廓是一条简单的曲线,它连接具有相同颜色或强度的连续点。
我在hand gesture recognition中使用了轮廓的概念,其中我以轮廓所包围的区域为基础,以去除噪声并仅检测图像中的手部。