輪廓逼近原理與OpenCV應用
輪廓逼近原理與OpenCV應用
資料來源: https://mp.weixin.qq.com/s/54krLSRCRX7yTUyq0MnsUg
https://pyimagesearch.com/2021/10/06/opencv-contour-approximation/
https://docs.opencv.org/4.x/dd/d49/tutorial_py_contour_features.html
Code
import cv2 import numpy as np src = cv2.imread('1.png') cv2.imshow("src", src) gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) _, thres = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY_INV) cv2.imshow("thresh", thres) cnts,_ = cv2.findContours(thres, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) output = src.copy() cv2.drawContours(output, cnts[0], -1, (0, 255, 0), 2) cv2.imshow("src-contour", output) res = src.copy() epsilon = 0.05 * cv2.arcLength(cnts[0], True) approx = cv2.approxPolyDP(cnts[0],epsilon,True) cv2.drawContours(res,[approx],-1,(255,0,0),2) cv2.imshow("approxPolyDP", res) cv2.waitKey(0) cv2.destroyAllWindows()