1. cv2.boundingRect(InputArray points)函数
InputArray points:指所有轮廓点信息,如心形的轮廓
返回值是有四个,分别是左上角的x,y坐标,宽度w,高度h
x, y, w, h = cv2.boundingRect(InputArray points)
2. cv2.rectangle(image, start_point, end_point, color, thickness)绘制矩形
image:所需要绘制的图像
start_point:绘制矩形起始坐标
end_point:绘制矩形终点坐标
color:绘制矩形线的颜色(B,G,R)
thickness:矩形线的粗细,负数是填充整个矩形
如上图的绿色矩形框代码:
cv2.rectangle(gray_img, (x,y), (x+w, y+h), (0, 255, 0), 1)
3.cv2.minAreaRect(Points)
cv2.minAreaRect(Points)函数的功能是找到包围所以点集的最小面积矩形
Points:所有点的集合
返回rect列表
rect[0]:矩形中心点坐标(x,y)
rect[1]:矩形的长宽(w,h)
rect[2]:矩形的倾斜角度(旋转角度)
旋转角度问题
rect=cv2.minAreaRect(Points)
4.cv2.boxPoints((x_center, y_center),(w,h), theta)
函数功能:返回矩形的四个顶点
(x_center, y_center):为矩形的中心点坐标
(w,h):矩形的长宽
theta:矩形的旋转角度,正为顺时针,负为逆时针
box=cv2.boxPoints( ( (50 ,50) ,(10, 10), 30))
通常和cv2.minAreaRect(Points)一起使用,cv2.minAreaRect(Points)返回值正好是这函数的参数
rect=cv2.minAreaRect(Points)
box=cv2.boxPoints(rect)