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命令行参数解析OptionParser类用法实例
Oct 09 Python
python实现端口转发器的方法
Mar 13 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
带你了解python装饰器
Jun 15 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
python3中property使用方法详解
Apr 23 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
python matplotlib实现将图例放在图外
Apr 17 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 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常用正则表达式的整理汇总
2013/06/08 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
javascript实用方法总结
2015/02/06 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
pytorch中的inference使用实例
2020/02/20 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
儿子婚宴答谢词
2014/01/09 职场文书
直接有效的自我评价
2014/01/11 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
聚美优品广告词改编
2014/03/14 职场文书
校庆标语集锦
2014/06/25 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
六一活动主持词
2015/06/30 职场文书
食品卫生管理制度
2015/08/06 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
Docker官方工具docker-registry案例演示
2022/04/13 Servers