python使用opencv2将不规则图形处理为矩形框_python – NumPy / OpenCV 2:如何裁剪非矩形区域?...

*编辑 – 更新以处理具有Alpha通道的图像.

这对我有用:

>制作全黑的面具(全屏蔽)

>以投资回报率的形状填充白色的多边形

>组合面具和您的图像,以获得其他地方的黑色ROI

您可能只想将图像和蒙版分开用于接受掩码的功能.但是,我相信这是你特别要求的:

import cv2

import numpy as np

# original image

# -1 loads as-is so if it will be 3 or 4 channel as the original

image = cv2.imread('image.png', -1)

# mask defaulting to black for 3-channel and transparent for 4-channel

# (of course replace corners with yours)

mask = np.zeros(image.shape, dtype=np.uint8)

roi_corners = np.array([[(10,10), (300,300), (10,300)]], dtype=np.int32)

# fill the ROI so it doesn't get wiped out when the mask is applied

channel_count = image.shape[2] # i.e. 3 or 4 depending on your image

ignore_mask_color = (255,)*channel_count

cv2.fillPoly(mask, roi_corners, ignore_mask_color)

# from Masterfool: use cv2.fillConvexPoly if you know it's convex

# apply the mask

masked_image = cv2.bitwise_and(image, mask)

# save the result

cv2.imwrite('image_masked.png', masked_image)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值