前提・実現したいこと
python+openCVで開発を行っています。
画像の輪郭抽出を行った後、それを外接矩形で表示するところまで進めています。
次に、外接矩形を表示する輪郭をある限定された輪郭(ひび割れ模様)にのみ行いたいです。
この際に有効な方法を教えていただけるとありがたいです。
発生している問題・エラーメッセージ
外接矩形を表示したくない輪郭にまで表示されてしまう
該当のソースコード
python
1import cv2 2 3def main(): 4 src = cv2.imread('C:/Users/ito/Anaconda3/envs/Sample/pic/IMG_0050.jpg') 5 6 height, width, channels = src.shape 7 image_size = height * width 8 9 src_gray = cv2.cvtColor(src, cv2.COLOR_RGB2GRAY) 10 11 ret, dst = cv2.threshold(src_gray, 122, 255, cv2.THRESH_BINARY) 12 13 dst, contours, hierarchy = cv2.findContours(dst, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 14 15 for i, contour in enumerate(contours): 16 area = cv2.contourArea(contour) 17 if area < 500: 18 continue 19 20 if image_size * 0.99 < area: 21 continue 22 23 x,y,w,h = cv2.boundingRect(contour) 24 rec = cv2.rectangle(dst, (x,y),(x+w,y+h),(0,0,255), 2) 25 26 cv2.imwrite('C:/Users/ito/Anaconda3/envs/Sample/pic/sampplepgm.png', rec) 27 28if __name__ == '__main__': 29 main()
補足情報(FW/ツールのバージョンなど)
windows7 professional
python3.6.5
opencv3.3.1
回答1件
あなたの回答
tips
プレビュー