多边形填充实现掩码

参考代码和函数:OpenCV绘图之多边形函数cvFillPoly,cvPolyLine,cvFillConvexPoly

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
img = np.zeros((100, 100), dtype = np.int8)
print img
print '\n.......\n'
 
#four points of a monotonic polygon
points = np.array([[1, 1], [1, 98], [98, 98], [98, 1]])
 
cv2.fillConvexPoly(img, points, 1)
print img
 
plt.imshow(img, cmap = 'gray')
plt.show()

我的实现

import cv2
import numpy as np

img = cv2.imread('C:/Users/Administrator/Desktop/1551074249341.jpg',1)

points = np.array([[45, 265], [195, 265], [134, 22], [116, 22]])
cv2.fillConvexPoly(img, points,1)

cv2.imshow('a',img)
cv2.imwrite('C:/Users/Administrator/Desktop/mask.jpg',img)
cv2.waitKey(0)

实现结果:
在这里插入图片描述
在这里插入图片描述
矩形区域掩码

import numpy as np
import cv2
import os

datapath = 'C:/Users/Administrator/Desktop/result_test/test0306/'
outpath = 'C:/Users/Administrator/Desktop/result_test/test0306/'
files = os.listdir(datapath)

for filename in files:

    filepath = datapath + filename
    image = cv2.imread(filepath)
    roi_list = list()

    rois = np.array([
                        [[119, 24], [139, 25], [176, 268], [85, 268]],
                    ])
    for roi in rois:
        xmin = np.min([coordinates[0] for coordinates in roi])
        xmax = np.max([coordinates[0] for coordinates in roi])
        ymin = np.min([coordinates[1] for coordinates in roi])
        ymax = np.max([coordinates[1] for coordinates in roi])
        roi_list.append((xmin, xmax, ymin, ymax))

    for roi in roi_list:
        result = image
        result[roi[2]:roi[3], roi[0]:roi[1]] = 0
        cv2.imshow('result', result)
        cv2.waitKey(0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值