流域法を使用して画像のオーバーセグメンテーションを実行したいと考えています。ドキュメントを読むと、findContour と drawContour 関数を使用してマーカーを作成する必要があります。どうすればそれを使用できますか?
これは私の現在のコードです、
import cv2
import numpy as np
im=cv2.imread('balls.jpg')
marker=np.zeros(im.shape[:2])
marker[::30,::30]=200
marker=np.int32(marker)
cv2.watershed(im,marker)
out=cv2.convertScaleAbs(marker)
cv2.namedWindow('Out')
cv2.imshow('Out', out)
cv2.waitKey()
P / S:これについて別の質問がありますが、彼らは他のアプローチを使用しました(前景と背景に基づいています。代わりに輪郭を使用したいです)。
これが私の目標です: 画像の過剰なセグメンテーションを生成します:
入力画像はここからダウンロードできます: http://decsai.ugr.es/~javier/denoise/peppers256.png