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实用技巧两则
Aug 29 Python
Python实现读取文件最后n行的方法
Feb 23 Python
django 实现电子支付功能的示例代码
Jul 25 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
浅谈python常用程序算法
Mar 22 Python
python使用pygame模块实现坦克大战游戏
Mar 25 Python
详解Python3中的 input() 函数
Mar 18 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 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合并两个数组的两种方式的异同
2012/09/14 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python实现LRU算法的2种方法
2015/06/24 Python
python实现二叉树的遍历
2017/12/11 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
《最可爱的人》教学反思
2014/02/14 职场文书
升职自我推荐信范文
2015/03/25 职场文书
红色影片观后感
2015/06/18 职场文书