これは、画像からROIを選択するための視覚化です
-------------------------------------------
| |
| (x1, y1) w |
| ------------------------ |
| | | |
| | | |
| | ROI | h |
| | | |
| | | |
| | | |
| ------------------------ |
| (x2, y2) |
| |
| |
| |
-------------------------------------------
画像(0,0)
の左上隅を、左から右をx方向、上から下をy方向と見なします。(x1,y1)
ROIの左上と右下の頂点がある場合(x2,y2)
、Numpyスライスを使用して、次のように画像をトリミングできます。
ROI = image[y1:y2, x1:x2]
ただし、通常、右下の頂点はありません。通常の場合、等高線を反復処理するときにROIのバウンディングボックスの(x,y,w,h)
座標が取得される可能性があります。cv2.boundingRect()
cnts = cv2.findContours(grayscale_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
x,y,w,h = cv2.boundingRect(c)
ROI = image[y:y+h, x:x+w]
OpenCV v2.2以降、Numpy配列は画像の表示に素朴に使用されています。ROIを抽出するためのこのNumpyスライス方法は、古いバージョンでは機能しない可能性があります