实例来源于OpenCV自带历程,这里以OpenCV4.2为例,路径为:
F:\opencv4.2_release\opencv\sources\samples\python\squares.py
本文稍作修改,做简要说明。目标是找到下图中的矩形轮廓和四边形轮廓:
矩形的检测包含检测轮廓是四个顶点,同时两条边的夹角接近90°,代码和效果如下:
import numpy as npimport cv2 as cv# 设置putText函数字体font=cv.FONT_HERSHEY_SIMPLEX#计算两边夹角额cos值def angle_cos(p0, p1, p2): d1, d2 = (p0-p1).astype('float'), (p2-p1).astype('float') return abs( np.dot(d1, d2) / np.sqrt( np.dot(d1, d1)*np.dot(d2, d2) ) )def find_squares(img): squares = []