繁体   English   中英

检查像素是否在 opencv python 中的连接组件内

[英]Check if pixel is inside a connected component in opencv python

我正在对给我一些白色区域的图像进行阈值处理。 我有一个位于这些区域之一的像素位置。 我正在使用 opencv connectedComponentsWithStats来获取区域,然后查找像素是否在这些区域中的任何一个中。 我怎样才能做到这一点?

关于这一点,是否有更好的方法来找到该像素位于哪个阈值区域?

numLabels, labelImage, stats, centroids = cv2.connectedComponentsWithStats(thresh, connectivity, cv2.CV_32S)

numLabels = 阈值图像中的标签或区域数

labelImage = 包含代表每个区域的唯一标签(1, 2, 3..)的矩阵或图像,背景在 labelImage 中表示为 0。

stats = stats 是一个统计矩阵,其中包含有关区域的信息。

质心 = 每个区域的质心。

在您的情况下,您可以使用 labelImage 找出像素坐标上唯一的 label 值,以找出它位于哪个区域。

您可以使用pointPolygonTest function 检查点是否在轮廓内。

因此,在阈值化之后,使用findContours function 找到图像中的轮廓。 然后你可以将轮廓和点传递给这个 function 来检查点是否在区域内。

由于您拥有连接的组件和统计信息(您使用connectedComponentsWithStats找到),因此您可以使用这种方法更快地进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM