python图像切割成多边形_python通过opencv实现图片裁剪原理解析
这篇文章主要介绍了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实现图片裁剪原理解析相关推荐
- python图像切割成多边形_python opencv在图像中裁剪任意形状多边形,裁剪镂空多边形, 裁剪多个多边形...
一.裁剪单个多边形 import numpy as np import cv2 # 读取图像 img = cv2.imread("dog.jpg") # 坐标点points pts ...
- python图像切割成多边形_如何在python中将图像裁剪成多边形
我正在尝试制作一个图形用户界面,帮助我裁剪人脸,并根据他们的情绪(如愤怒.悲伤.高兴等)对其进行折叠.我的代码看起来工作正常,但当我裁剪图像时,它会保存图像的其余部分.我真的不知道怎么才能做到!! 我 ...
- OpenCV三角测量重建triangulatePoints原理解析
共线方程 双相机立体重建时,利用物体点-光心-像点三者共线的原理,在找到左右匹配的像点并且完成去畸变之后(OpenCV去畸变undistortPoints原理解析),就能够在三维空间中形成两条直线,物 ...
- python图片切面_python 利用opencv进行图片切割
自学opencv也有十几天了,一直练习教程上面的例子总感觉不够,刚好碰到一个老师出的数学建模题涉及图片处理兴趣立马上来,决定利用所学的解决这个建模题 下面是数学建模题: 最强大脑 近期,江苏卫视正在热 ...
- python图像转字符画_python图像处理-字符画风格图片
前言 字符画图片,顾名思义就是由一个个字符组成的图片,下面这张图片很容易帮助你理解,如果我们可以将字符排列好,让他看上去像一个物体的形状,那么最后再将它输出保存为一张图片就可以实现了. 下面的这些形状 ...
- python图像特征提取与匹配_[OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (二)...
部分 V 图像特征提取与描述 34 角点检测的 FAST 算法 目标 • 理解 FAST 算法的基础 • 使用 OpenCV 中的 FAST 算法相关函数进行角点检测 原理 我们前面学习了几个特征检测 ...
- python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结
下面列出列表常用的方法操作列表以及小例子: 1. Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...
- python模块cv2人脸识别_Python基于Opencv来快速实现人脸识别过程详解(完整版)
前言 随着人工智能的日益火热,计算机视觉领域发展迅速,尤其在人脸识别或物体检测方向更为广泛,今天就为大家带来最基础的人脸识别基础,从一个个函数开始走进这个奥妙的世界. 首先看一下本实验需要的数据集,为 ...
- python十六进制转换成八进制_Python 进制转换 二进制 八进制 十进制 十六进制
全局定义一定不要丢了 全局定义 base = [str(x) for x in range()] + [ chr(x) for x in range(ord('A'),ord('A')+)] 二进制 ...
最新文章
- 这位北大CS硕士小老弟,简直是“卷怪”!
- Selenium Web 自动化 - Selenium常用API
- TCP三次握手协议和SYN攻击以及DDOS简介
- android 自动打包脚本,Jenkins实现Android自动化打包
- Android Service演义
- CSS3详解:transform、transition
- 企业文档管理_为什么这么多企业文档如此糟糕?
- git 查看pop内容_原创 | 有了Git这个操作,我再也不怕代码混乱了!
- 分布式系统关联查询_一文详解分布式系统 | 留言送书
- php查询对象是否有某个属性可用,JavaScript 判断对象中是否有某属性的常用方法...
- python类的继承举例_python类的继承实例详解
- mac m1搭建java opencv 环境(遇到的坑记录)
- VB .NET-文本文件读写
- Java链表-合并两个有序链表
- C# 下拉菜单的设置 lookupedit
- 山西台达plc可编程控制器_PLC(可编程控制器)的点动控制原理
- imagemagick gif制作
- Leetcode799-香槟塔
- LiveData vs EventBus?不,他们其实可以一起
- 使用Selenium实现微博爬虫:预登录、展开全文、翻页