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

2024-10-03 21:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在对一个图像进行阈值化,这会给我一些白色区域。我有一个像素位置,位于这些区域之一。我使用opencvconnectedComponentsWithStats来获取这些区域,然后找出像素是否在这些区域中的任何一个。我怎么能做到呢?在

在这个问题上,有没有更好的方法可以找到像素所在的阈值区域?在


Tags: 方法图像区域阈值像素白色opencvconnectedcomponentswithstats
2条回答

您可以使用pointPolygonTest函数检查一个点是否在轮廓内。在

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

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

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

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

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

stats=stats是一个包含区域信息的统计矩阵。在

质心=每个区域的质心。在

在您的例子中,您可以使用labelImage找出像素坐标上的唯一标签值,以找出它所在的区域。在

相关问题 更多 >