OpenCVで次の画像の輪郭を近似した後の輪郭の頂点の検出及び座標を求めたいのですが、どうすればよろしいでしょうか?ソースコード、入力画像、輪郭を近似した出力画像を上げておきます。
python
1import cv2 2import numpy as np 3img=cv2.imread('input.jpg') 4gray=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)[:,:,1] 5ret,thresh = cv2.threshold(gray,150,200,cv2.THRESH_BINARY) 6kernel = np.ones((5,5),np.uint8) 7opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel) 8kernel2 = np.ones((9,9),np.uint8) 9closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel2) 10contours,hierarchy = cv2.findContours(closing, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 11approx_contours = [] 12for i, cnt in enumerate(contours): 13 arclen = cv2.arcLength(cnt, True) 14 approx_cnt = cv2.approxPolyDP(cnt, epsilon=0.005 * arclen, closed=True) 15 approx_contours.append(approx_cnt) 16 17contimg=cv2.drawContours(img,approx_contours,-1,(0,255,0),3) 18cv2.imwrite('output.jpg',img)
回答1件
あなたの回答
tips
プレビュー