私はUbuntu上で、Python 2.7です。 OpenCVを使って作業する。cv2.connectedコンポーネントがコンポーネントを検出しない
私は、関数cv2.connectedComponentsが何をしているのかを正確に理解しようとしていました。 これはイメージである:
コード:私は理解したものから
import cv2
import numpy as np
img = cv2.imread('BN.tif', 0)
img = np.uint8(img)
_, markers = cv2.connectedComponents(img)
、この目的球は、提供された画像と同じ大きさの配列を作成します。検出された各コンポーネントについて、そのコンポーネントのすべての(y、x)ポジションに同じ番号を割り当てます。背景がすべて「0」の場合、円はすべて「1」、次の四角はすべて「2」などとなります。最後のコンポーネントはすべて「19」でなければなりません。私は19を取得する必要があります
np.amax(markers)
が、私は1
私の質問取得しています:私は、コンポーネントを定義する最大の数を取得することにより、部品点数を読んでいますなぜ私は1つだけのコンポーネントを取得していますか?
前景オブジェクトが白、背景の黒であるべきであるので。イメージを反転する! 'img = 255 - img'; – Miki
おっと...どうすればいいですか...そうですね!ありがとう – daniel