輪郭抽出した後に,特徴点の座標が知りたいです。
import
1import matplotlib.pyplot as plt 2from matplotlib.patches import Polygon 3 4img = cv2.imread("./pu1/1124_2_0.jpg") 5gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 6ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) 7 8kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5)) 9binary = cv2.dilate(binary, kernel) 10contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 11 12def draw_contours(ax, img, contours): 13 ax.imshow(img) 14 ax.set_axis_off() 15 16 for i, cnt in enumerate(contours): 17 if cv2.contourArea(cnt) < 1900: 18 continue 19 else : 20 cnt = cnt.squeeze(axis=1) 21 ax.add_patch(Polygon(cnt, color="b", fill=None, lw=2)) 22 ax.plot(cnt[:, 0], cnt[:, 1], "ro", mew=0, ms=4) 23 ax.text(cnt[0][0], cnt[0][1], i, color="orange", size="20") 24 print(contours) 25 26 27fig, ax = plt.subplots(figsize=(8, 8)) 28draw_contours(ax, img, contours) 29 30plt.savefig('./rinnkaku/.jpg') 31コード
面積の小さな部分の輪郭の座標も抽出してしまいます。
一番大きな輪郭(ここでいう2ばん)のところだけの座標群を知りたいです。
どなたかよろしくお願いします。
pythonのversionは3.7.3で,
opencvのversionは4.1.1です。
回答2件
あなたの回答
tips
プレビュー