[英]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.