gpt4 book ai didi

python - OpenCV 和 Python : Connected components analysis

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:38 26 4
gpt4 key购买 nike

我有一个在 C 中工作的连接组件分析代码。它实际上是“学习 Opencv”一书的副本。

现在我正在将所有代码重写为 Python,但我无法在 Python API 中找到某些函数,例如 cvStartFindContours。

我想知道是否有人用 Python 实现了基本的连通分量分析功能。我知道有一些库,但我正在寻找更简单的东西,只是一个函数或一段代码。

我不需要任何“大”的东西,因为我有一个带有 2 或 3 个白色圆圈的纯黑色图像,我想找到圆圈的数量及其中心。

我知道我可能可以自己编写代码,但我更喜欢使用别人的函数或简单的库。

编辑:我通过以下方式解决了它。

def find_connected_components(img):
"""Find the connected components in img being a binary image.
it approximates by rectangles and returns its centers
"""

storage = cv.CreateMemStorage(0)
contour = cv.FindContours(img, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)
centers = []

while contour:
# Approximates rectangles
bound_rect = cv.BoundingRect(list(contour))

centers.append(bound_rect[0] + bound_rect[2] / 2, bound_rect[1] + bound_rect[3] / 2)

contour = contour.h_next()

最佳答案

有 BSD 许可连接组件代码(在 Cython 中)作为 scikit-image 的一部分:

https://github.com/scikit-image/scikit-image/blob/master/skimage/measure/_ccomp.pyx

如果你安装了这个包,就很简单了

from skimage import measure
import numpy as np

L = measure.label(image)
print "Number of components:", np.max(L)

关于python - OpenCV 和 Python : Connected components analysis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com