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,第六个参数是原始图像(应该是生成的图像?)

类似的结果

pyhton中给图像填充不规则图形

 

相关文章: