需求分析
利用OPENCV绘制多边形,主要是因为给的数据是4个点,而绘制矩形的函数cv2.rectangle只传递两个点,即左上和右下。
绘制矩形框可以参考这里
代码实现
就是利用cv2.fillPoly函数
cv2.fillPoly(img, [area1,area2,area3], (2, 255, 255))
# image表示处理的图片
# [area1,area2,area3]表示三个多边的区域
# (2, 255, 255)表示多边形的填充颜色
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 26 17:21:50 2020
@author: cxz_w
"""
import cv2
import numpy as np
#img = np.zeros((1080, 1920, 3), np.uint8)
img = cv2.imread("P0170.png")
area1 = np.array([[1673,647], [1710, 572], [1764, 596], [1731, 677]])
area2 = np.array([[739, 416], [649, 389], [673, 319], [761, 345]])
area3 = np.array([[890, 199], [808, 167], [828, 110], [914, 138]])
cv2.fillPoly(img, [area1, area2,area3], (2, 255, 255))
img=cv2.rectangle(img, (int(1673),int(572)), (int(1764),int(677)), (0,255,0), 2)
img=cv2.rectangle(img, (int(649),int(319)), (int(761),int(416)), (0,255,0), 2)
img=cv2.rectangle(img, (int(808),int(110)), (int(914),int(199)), (0,255,0), 2)
cv2.namedWindow("draw_0",2)
cv2.imshow("draw_0", img)#显示画过矩形框的图片
cv2.waitKey(0)
cv2.destroyWindow("draw_0")
img