Fu Xianjun. All Rights Reserved
分别进行预处理,轮廓检测、轮廓排序,透视变换、寻找圆圈轮廓、输出每个轮廓,对比答案
import cv2
import numpy as np
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
def order_points(pts):
rect = np.zeros((4,2),dtype = "float32")#初始化同样大小的图像变量
s = pts.sum(axis=1)#根据y坐标,提取参数
rect[0] = pts[np.argmin(s)]
rect[2] = pts[np.argmax(s)]
d = np.diff(pts,axis=1)
rect[1] = pts[np.argmin(d)]
rect[3] = pts[np.argmax(d)]
return rect
def four_point_transform(img,pts):
rect = order_points(pts)
(tl,tr,br,bl) = rect
widthA = np.sqrt((br[0]-bl[0])**2+(br[1]-bl[1])**2)
wi