一、裁剪单个多边形

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)

裁剪结果:

原图:

mask:

裁剪后:

二、裁剪多个多边形

已有多组坐标点bts,代表着多个多边形区域。

思路:对每组坐标点都在mask上进行相同的操作即可。这里就不重复写了。

三、裁剪镂空多边形

已有多组坐标点bts,其中一组表示最外层多边形,其余的表示镂空区域多边形。

思路1:对于最外层多边形在mask上进行白色填充(255);对于镂空区域多边形在mask上进行黑色填充(0)即可。这里就不重复写了。

思路2:对每个多边形区域都生成一个mask,用原图分别进行裁剪,然后做图像减法,最后再添加白色背景即可。这里就不重复写了。

本文地址:https://blog.csdn.net/PanYHHH/article/details/110940428

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

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

  1. python图片相似度计算_python Opencv计算图像相似度过程解析

    这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...

  2. python去除图像光照不均匀_python+opencv——去除图像光照不均匀

    使用python版本的opencv去除图像中的光照不均匀 在图像处理中,如果图像中存在光照不均匀,则会影响图像处理的效果,比如在图像文本识别和图像分割中.本博客对于图像均衡化的处理主要参考文章:一种基 ...

  3. python图像切割成多边形_python通过opencv实现图片裁剪原理解析

    这篇文章主要介绍了python通过opencv实现图片裁剪原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 图像裁剪的基本概念 : 图像裁剪是 ...

  4. python图像边缘检测_python opencv实现图像边缘检测

    本文利用python opencv进行图像的边缘检测,一般要经过如下几个步骤: 1.去噪 如cv2.GaussianBlur()等函数: 2.计算图像梯度 图像梯度表达的是各个像素点之间,像素值大小的 ...

  5. python全景图像拼接_Python+OpenCV实现图像的全景拼接

    本文实例为大家分享了Python+OpenCV实现图像的全景拼接的具体代码,供大家参考,具体内容如下 环境:python3.5.2 + openCV3.4 1.算法目的 将两张相同场景的场景图片进行全 ...

  6. python opencv 读取图片_Python opencv 读取图像

    对于 matlab 起家做数字图像处理的人来讲都非常适应matlab对图像处理的操作和思路,尤其是它可以非常方便直观的看到图像的RGB值. 由于最近在研究深度学习的计算机视觉方面的东西,于是完全自学接 ...

  7. opencv把图片转换成二进制_Python+OpenCV实现将图像转换为二进制格式

    Python+OpenCV实现将图像转换为二进制格式 发布时间:2020-09-20 20:30:58 来源:脚本之家 阅读:68 作者:大蛇王 在学习tensorflow的过程中,有一个问题,ten ...

  8. python 高斯金字塔_Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. 基础知识铺垫 学习图像金字塔,发现网上的资料比较多,检索起来比较轻松. 图像金字塔是一张图像多尺度的表达,或者可以理解成一 ...

  9. python图像融合算法_Python OpenCV 实现图像融合

    原标题:Python OpenCV 实现图像融合 来自:https://www.linuxmi.com/python-opencv-image-blending.html 在本文中,我们将讨论Pyth ...

最新文章

  1. 一键摸鱼神器火了!专为Windows系统打造,老板在身后也可以很淡定
  2. insert 语句常见问题
  3. HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果
  4. 2008春节长白山哈尔滨雪乡游
  5. 把一个一维数组转换为in ()
  6. android camera viewport rect,Unity 实现屏幕抖动效果(通过Camera Viewport Rect)
  7. 问题 B: 小鱼的搭配购物(并查集+01背包)
  8. c++ sendmessage 鼠标 坐标是相对自身吗_【科普】你真的足够了解五轴加工吗?看完豁然开朗!...
  9. Jenkins创建新任务
  10. 小白都能看懂的numpy与pandas中axis解释
  11. php store快捷键设置,mac 下 phpstorm 快捷键整理
  12. linux 安装 yum
  13. Ubuntu下 UltraEdit 破解/显色
  14. 接口(interface、implement)
  15. mysql经纬度查范围内_sql语句查询经纬度范围
  16. 求一个数的所有因数+质因数分解【数论】
  17. 网络费用报销管理系统的设计与实现
  18. matlab实现PS算法之颜色变换、高反差保留、染色玻璃、碎片
  19. android图标生成网址
  20. GhostXP SP3 统一会员纯净版 V2.1

热门文章

  1. Java控制手机在同一网下_安卓手机控制另一手机的方法【详解】
  2. python中and和or的惰性求值特点_Python 惰性求值
  3. HDU_1847 Good Luck in CET-4 Everybody!
  4. Good Luck in CET-4 Everybody! HDU - 1847 (巴氏博弈)
  5. 育儿心得,所有适龄女青年都该看一下
  6. 朗月孤舟一尺半,天堂地狱八十年。
  7. C语言之利用文件保存数据
  8. 《互动教程 for Photoshop CC》已成功发布在App Store
  9. 新版HyperMesh的Assemblies中调出下拉菜单查看Component(装配关系模型树)
  10. Nginx 部署、反向代理配置、负载均衡