OpenCV를 사용한 얼룩 감지 실행 예

소개



블롭(덩어리)이란, 비슷한 특징을 가진 화상내의 영역을 의미합니다. 예를 들어 아래와 같은 이미지에서는 원과 같은 도형이 얼룩이라고 말할 수 있습니다.



OpenCV에는 얼룩을 자동으로 감지 할 수있는 기능이 내장되어있어 쉽게 찾을 수 있습니다.

하고 싶은 일



원형을 찾아 카운트하고 싶다.

코드



blob.py
import cv2 
import numpy as np 

# 画像の読み込み
image = cv2.imread('shapes.jpg', 0)

# パラメータの初期化
params = cv2.SimpleBlobDetector_Params() 

# ブロブ領域(minArea <= blob < maxArea)
params.filterByArea = True
params.minArea = 100

# 真円度( 4∗π∗Area / perimeter∗perimeter によって定義される)
#(minCircularity <= blob < maxCircularity)
params.filterByCircularity = True 
params.minCircularity = 0.85

# 凸面の情報(minConvexity <= blob < maxConvexity)
params.filterByConvexity = True
params.minConvexity = 0.1

# 楕円形を表す(minInertiaRatio <= blob < maxInertiaRatio)
params.filterByInertia = True
params.minInertiaRatio = 0.1

# 検知器作成
detector = cv2.SimpleBlobDetector_create(params) 

# ブロブ検知 
keypoints = detector.detect(image) 

# ブロブを赤丸で囲む
blank = np.zeros((1, 1))  
blobs = cv2.drawKeypoints(image, keypoints, blank, (0, 0, 255), 
                          cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) 

# ブロブの個数  
count = len(keypoints) 
print(f'丸の個数: {count}')

# 画像を表示
cv2.imshow("out.jpg", blobs) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

결과


>python blob.py
丸の個数: 8



※틀이 빨강에서 흑으로 변화한 것은, 그레이 스케일로 읽어들였기 때문입니다.

실행에 실패한 이야기



다른 사이트에서 소개 된 코드를 시도하면 파이썬이 충돌했습니다.



조사해 보면 OpenCV의 버전이 영향을 미친 것 같습니다. 이전 버전의 OpenCV에서는 SimpleBlobDetector_create() 대신 SimpleBlobDetector()라는 함수가 사용되었으며 copipe로 코드 실행 → 현재는 사용되지 않는 함수 참조 → 크래시라는 흐름이 발생했다고 생각합니다. 합니다.
대책으로는 SimpleBlobDetector_create()를 사용하거나 아래 코드로 다시 쓰면 오류를 피할 수 있습니다.
ver = (cv2.__version__).split('.')
if int(ver[0]) < 3:
    detector = cv2.SimpleBlobDetector(params)
else:
    detector = cv2.SimpleBlobDetector_create(params)  

결론



블롭 검지의 응용예로서는 개수의 카운트나 위치 검지가 있습니다. OpenCV에 의해 간단하게 사용할 수 있으므로, 이 예 이외에서도 시험해 가고 싶습니다.

마지막까지 보아 주셔서 감사합니다. 코멘트・지적등 있으면 감사합니다.

참고 URL



htps //w w. p 여과 등 mc 네 k. 이 m/py 텐/에 mpぇ/89350/cv2. mp ぇ B ぉ b에서 c와 r
htps //w w.ゔぃs こーち ch. 이 m / ch ch 또는 l / ぢ 레 c 치 온 p 센세 / b ぉ b /

좋은 웹페이지 즐겨찾기