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中用函数作为返回值和实现闭包的教程
Apr 27 Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 Python
TensorFlow入门使用 tf.train.Saver()保存模型
Apr 24 Python
Python3 批量扫描端口的例子
Jul 25 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python反爬虫方法的优缺点分析
Nov 25 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
删除数组元素实用的PHP数组函数
2008/08/18 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
python控制台中实现进度条功能
2015/11/10 Python
python中defaultdict的用法详解
2017/06/07 Python
python去除文件中重复的行实例
2018/06/29 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
Pytorch 实现权重初始化
2019/12/31 Python
pandas参数设置的实用小技巧
2020/08/23 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
.NET面试10题
2014/02/24 面试题
幼儿园教师自荐书
2015/03/06 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL