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

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

类似的结果

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值