python图像切割成多边形_python opencv在图像中裁剪任意形状多边形,裁剪镂空多边形, 裁剪多个多边形...

本文介绍了如何使用Python和OpenCV库来裁剪图像中的单个多边形、多个多边形以及镂空多边形。通过创建一个与原始图像同样大小的掩模,并在掩模上填充多边形区域,可以实现图像的精确裁剪。裁剪后的图像可以在白色背景下显示。文章提供了详细的代码示例和裁剪效果展示。
摘要由CSDN通过智能技术生成

一、裁剪单个多边形

import numpy as np

import cv2

# 读取图像

img = cv2.imread("dog.jpg")

# 坐标点points

pts = np.array([[10, 10], [15, 0], [35, 8], [100, 20], [300, 45], [280, 100], [350, 230], [30, 200]])

pts = np.array([pts])

# 和原始图像一样大小的0矩阵,作为mask

mask = np.zeros(img.shape[:2], np.uint8)

# 在mask上将多边形区域填充为白色

cv2.polylines(mask, pts, 1, 255) # 描绘边缘

cv2.fillPoly(mask, pts, 255) # 填充

# 逐位与,得到裁剪后图像,此时是黑色背景

dst = cv2.bitwise_and(img, img, mask=mask)

# 添加白色背景

bg = np.ones_like(img, np.uint8) * 255

cv2.bitwise_not(bg, bg, mask=mask) # bg的多边形区域为0,背景区域为255

dst_white = bg + dst

cv2.imwrite("mask.jpg", mask)

cv2.imwrite("dst.jpg", dst)

cv2.imwrite("dst_white.jpg", dst_white)

裁剪结果ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值