python通过opencv实现图片裁剪原理解析


Posted in Python onJanuary 19, 2020

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

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

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

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

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

图像裁剪的OpenCV实现

规则分幅裁剪:

python通过opencv实现图片裁剪原理解析

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

计算图如下:

import cv2
img = cv2.imread("500x400.jpg")
img1=img[100:300,125:375] #需要保留的区域--裁剪
#参数1 是高度的范围,参数2是宽度的范围

cv2.imwrite("linsi.jpg",img1)
cv2.waitKey(0)

效果图:

python通过opencv实现图片裁剪原理解析

不规则分幅裁剪

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

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

Python 相关文章推荐
Python pickle模块用法实例分析
May 27 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
Python创建字典的八种方式
Feb 27 Python
详解python使用turtle库来画一朵花
Mar 21 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Python文件读写w+和r+区别解析
Mar 26 Python
pytorch实现查看当前学习率
Jun 24 Python
Python爬取梨视频的示例
Jan 29 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 #Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 #Python
Pytorch 实现数据集自定义读取
Jan 18 #Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 #Python
selenium 多窗口切换的实现(windows)
Jan 18 #Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 #Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 #Python
You might like
php session处理的定制
2009/03/16 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
django 自定义用户user模型的三种方法
2014/11/18 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python简单基础小程序的实例代码
2019/04/28 Python
Python中字符串List按照长度排序
2019/07/01 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
后进生转化工作制度
2014/01/17 职场文书
管理失职检讨书
2014/02/12 职场文书
城管综合整治方案
2014/05/01 职场文书
委托书怎么写
2014/07/31 职场文书
教师节主持词开场白
2015/05/29 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
python实现简单倒计时功能
2021/04/21 Python
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技