opencv+python 抠取图片中任意形状部分

opencv+python 抠取图片中任意形状部分

矩形:

mask = np.zeros([300, 300], dtype=np.uint8)
#[300,300]为被抠取图片的尺寸,若为灰度图可直接写成img.shape
cv2.rectangle(mask,(mask[x1,y1],mask[x2,y2]),(255,255,255),-1)
#mask[x1,y1],mask[x2,y2]为矩形的坐上和右下坐标
get_img = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask)
#ogray为原图

圆形同上,只需将第二行改为:

cv2.circle(mask, center, radius, color[, thickness[, lineType[, shift]]])
#注:必须为实心

任意形状:
倘若想将任意形状的部分抠出,必须先找到所求部分的轮廓信息,此处可使用cv2.findContours函数,此处不再赘述。

contours[i] = cv2.drawContours(contours[i], contours, i, (255, 0, 0), -1)
get_img = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=contours[i])
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值