【问题标题】:connectedComponents in opencv (Python) does not care from connectivity?opencv(Python)中的connectedComponents不关心连接性吗?
【发布时间】:2018-09-08 06:26:42
【问题描述】:

我对@9​​87654321@(或connectedComponentsWithStats)有疑问,它是Python(2.7.12)中的一个opencv(3.3.0)函数。一个简单的代码如下:

import numpy as np
import cv2

img = np.zeros((4,4), dtype = np.uint8)
img[1,1] = 255
img[2,2] = 255
output = cv2.connectedComponents(img, 4)
print output[1]

返回

[[0 0 0 0]
 [0 1 0 0]
 [0 0 1 0]
 [0 0 0 0]]

这很奇怪,因为我要求连接组件具有连接性 4(不是 8)。所以(1, 1)(2, 2) 中的两个像素没有连接,应该给出两个不同的连接分量,例如标记为 1 和 2。

我做错了吗?

【问题讨论】:

    标签: python python-2.7 opencv image-processing opencv3.3


    【解决方案1】:

    替换

    output = cv2.connectedComponents(img, 4)
    

    通过

    output = cv2.connectedComponents(img, connectivity=4)
    

    会给你

    [[0 0 0 0]
     [0 1 0 0]
     [0 0 2 0]
     [0 0 0 0]]
    

    或者提供所有 3 个参数

    output =  cv2.connectedComponents(img, 4, cv2.CV_32S)
    

    我不是 100% 为什么。我将把它留给那里的 Python 专家。据我了解cv2.connectedComponents(img, 4) 应该可以正常工作。但它没有

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多