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

图像裁剪的基本概念 :

图像裁剪是指将图像中我们想要的研究区以外的区域去除,经常是按照行政区划或研究区域的边界对图像进行裁剪。例如,一张500×400的图像,我们只想要中间的250×200的区域,就可以使用图像裁剪将四周的区域去除。

在实际开发工作中,我们经常需要对图像进行分幅裁剪,按照ERDAS实际图像分幅裁剪的过程,可以将图像分幅裁剪分为规则分幅裁剪和不规则分幅裁剪两种类型。

规则分幅裁剪:指裁剪图像的边界范围是一个矩形。裁剪时只需要通过左上角和右下角两点的坐标,就可以确定图像的裁剪位置。

不规则分幅裁剪:指裁剪图像的边界范围是任意多边形,裁剪时必须首先生成一个完整的闭合多边形区域。

图像裁剪的OpenCV实现

规则分幅裁剪:

在OpenCV中,图像被看成矩阵数据,我们将图像视为多维list,因为规则分幅裁剪的边界范围是一个矩形,所以我们可以根据列表切片来实现图像的规则分幅裁剪。现在,我们来实现将500×400的图像中间的250×200的区域裁剪出来。

计算图如下:

?

效果图:

不规则分幅裁剪

对于不规则分幅裁剪,首先得生成一个完整的闭合多边形区域。假设我们现在要将图像裁剪成一个圆形图像,那么我们就得首先生成一个圆形。OpenCV中为我们提供了专门用于画圆形图的方法circle

,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值

原文链接:https://www.cnblogs.com/liming19680104/p/12205278.html

python图像切割成多边形_python通过opencv实现图片裁剪原理解析相关推荐

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

    一.裁剪单个多边形 import numpy as np import cv2 # 读取图像 img = cv2.imread("dog.jpg") # 坐标点points pts ...

  2. python图像切割成多边形_如何在python中将图像裁剪成多边形

    我正在尝试制作一个图形用户界面,帮助我裁剪人脸,并根据他们的情绪(如愤怒.悲伤.高兴等)对其进行折叠.我的代码看起来工作正常,但当我裁剪图像时,它会保存图像的其余部分.我真的不知道怎么才能做到!! 我 ...

  3. OpenCV三角测量重建triangulatePoints原理解析

    共线方程 双相机立体重建时,利用物体点-光心-像点三者共线的原理,在找到左右匹配的像点并且完成去畸变之后(OpenCV去畸变undistortPoints原理解析),就能够在三维空间中形成两条直线,物 ...

  4. python图片切面_python 利用opencv进行图片切割

    自学opencv也有十几天了,一直练习教程上面的例子总感觉不够,刚好碰到一个老师出的数学建模题涉及图片处理兴趣立马上来,决定利用所学的解决这个建模题 下面是数学建模题: 最强大脑 近期,江苏卫视正在热 ...

  5. python图像转字符画_python图像处理-字符画风格图片

    前言 字符画图片,顾名思义就是由一个个字符组成的图片,下面这张图片很容易帮助你理解,如果我们可以将字符排列好,让他看上去像一个物体的形状,那么最后再将它输出保存为一张图片就可以实现了. 下面的这些形状 ...

  6. python图像特征提取与匹配_[OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (二)...

    部分 V 图像特征提取与描述 34 角点检测的 FAST 算法 目标 • 理解 FAST 算法的基础 • 使用 OpenCV 中的 FAST 算法相关函数进行角点检测 原理 我们前面学习了几个特征检测 ...

  7. python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结

    下面列出列表常用的方法操作列表以及小例子: 1.  Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...

  8. python模块cv2人脸识别_Python基于Opencv来快速实现人脸识别过程详解(完整版)

    前言 随着人工智能的日益火热,计算机视觉领域发展迅速,尤其在人脸识别或物体检测方向更为广泛,今天就为大家带来最基础的人脸识别基础,从一个个函数开始走进这个奥妙的世界. 首先看一下本实验需要的数据集,为 ...

  9. python十六进制转换成八进制_Python 进制转换 二进制 八进制 十进制 十六进制

    全局定义一定不要丢了 全局定义 base = [str(x) for x in range()] + [ chr(x) for x in range(ord('A'),ord('A')+)] 二进制 ...

最新文章

  1. 这位北大CS硕士小老弟,简直是“卷怪”!
  2. Selenium Web 自动化 - Selenium常用API
  3. TCP三次握手协议和SYN攻击以及DDOS简介
  4. android 自动打包脚本,Jenkins实现Android自动化打包
  5. Android Service演义
  6. CSS3详解:transform、transition
  7. 企业文档管理_为什么这么多企业文档如此糟糕?
  8. git 查看pop内容_原创 | 有了Git这个操作,我再也不怕代码混乱了!
  9. 分布式系统关联查询_一文详解分布式系统 | 留言送书
  10. php查询对象是否有某个属性可用,JavaScript 判断对象中是否有某属性的常用方法...
  11. python类的继承举例_python类的继承实例详解
  12. mac m1搭建java opencv 环境(遇到的坑记录)
  13. VB .NET-文本文件读写
  14. Java链表-合并两个有序链表
  15. C# 下拉菜单的设置 lookupedit
  16. 山西台达plc可编程控制器_PLC(可编程控制器)的点动控制原理
  17. imagemagick gif制作
  18. Leetcode799-香槟塔
  19. LiveData vs EventBus?不,他们其实可以一起
  20. 使用Selenium实现微博爬虫:预登录、展开全文、翻页

热门文章

  1. C1/C1/C2 カバレッジについて
  2. 《红警2》防空步兵都说了些什么?
  3. SQL零基础入门学习(八)
  4. 基于高光谱影像的农作物检测应用简介
  5. 会员获取积分的方式有哪些?
  6. TouchEvent
  7. 【中土世界】宏大地名汇总
  8. 【经验分享】技术说“实现不了”的潜台词
  9. Verilog中的!和~
  10. 蒙特卡罗算法 与 拉斯维加斯算法