if label == 'empty':
row = int(carNum % 2) + 2 * int(carNum / 50)
col = int((carNum / 2) % 25)
result[row, col] = 0 #数组表示一副图中三个大停车区域的停车情况,1表示有车,0表示空车位。一共6行25列
pts = np.array([[x_1, y1], [x1, y1], [x2, y2], [x_2, y2]])
cv2.fillConvexPoly(imgmask, pts, color=(0, 255, 0))
cv2.addWeighted(img, 1, imgmask, 0.3, 0, img)
elif label == 'occupied':
row = int(carNum % 2) + 2 * int(carNum / 50)
col = int((carNum / 2) % 25)
result[row, col] = 1
pts = np.array([[x_1, y1], [x1, y1], [x2, y2], [x_2, y2]])
cv2.fillConvexPoly(imgmask, pts, color=(0, 0, 255))
cv2.addWeighted(img, 1, imgmask, 0.3, 0, img)
cv2.fillConvexPoly(imgmask, pts, color=(0, 255, 0))
cv2.addWeighted(img, 1, imgmask, 0.3, 0, img)
整个过程分为两步,第一步是生成一个蒙版,第二步是把这个蒙版和原图重叠
其中cv2.fillConvexPoly(imgmask, pts, color=(0, 255, 0)),第一个参数是一个空白图像,pts是顺序连接的点,第三个参数是颜色,
cv2.addWeighted(img, 1, imgmask, 0.3, 0, img),第一个参数是原始图像,第二个参数是原始图像所占的比例,第三个是蒙版,第四个参数是蒙版的比率,第五个是额外加的值,一般设为0,第六个参数是原始图像(应该是生成的图像?)
类似的结果