web-dev-qa-db-ja.com

Python OpenCVを使用して画像の極端な外側の点を見つける

私はこの像の画像を持っています。

enter image description here

私は、像の上、下、左、右のほとんどの点を見つけようとしています。両側のエッジを測定して、像の最も外側のポイントを決定する方法はありますか?各辺の_(x,y)_座標を取得したい。私はcv2.findContours()cv2.drawContours()を使用して像の概要を取得しようとしました。

_import cv2

img = cv2.imread('statue.png')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

contours = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[0]
cv2.drawContours(img, contours, -1, (0, 200, 0), 3)

cv2.imshow('img', img)
cv2.waitKey()
_
13
coffeewin

findContoursのような高価なコードは必要ありません。最初の非白のピクセルが見つかるまで、画像を4辺から外側から内側へ1行ずつスキャンするだけです。

左から、左上から左下に向かってスキャンを開始します。白いピクセルが見つからない場合は、1ピクセル右に移動し、上から下にもう一度移動します。白以外のピクセルを見つけたら、これがleftです。

すべての面で同じことを行います。

0
RobAu