Bootstrap

判断一个点是否在矩形内部_Python OpenCV查找图中的四边形/矩形

aae56c2d3d29088d7d9add4183ca7d58.gif    实例来源于OpenCV自带历程,这里以OpenCV4.2为例,路径为:

F:\opencv4.2_release\opencv\sources\samples\python\squares.py

本文稍作修改,做简要说明。目标是找到下图中的矩形轮廓和四边形轮廓:

b089b97ca665c7d752e128ec3145982a.png

    矩形的检测包含检测轮廓是四个顶点,同时两条边的夹角接近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 = []
;