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的三目运算符和not in运算符使用示例
Mar 03 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
用Python逐行分析文件方法
Jan 28 Python
python读写配置文件操作示例
Jul 03 Python
对Django外键关系的描述
Jul 26 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
wxPython之wx.DC绘制形状
Nov 19 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Python如何输出警告信息
Jul 30 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 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
第四节--构造函数和析构函数
2006/11/16 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
python next()和iter()函数原理解析
2020/02/07 Python
selenium如何定位span元素的实现
2021/01/13 Python
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
总经理文秘岗位职责
2014/02/03 职场文书
网站美工岗位职责
2014/04/02 职场文书
小学数学课后反思
2014/04/23 职场文书
文明班级建设方案
2014/05/15 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
商业计划书范文
2019/04/24 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
springboot用户数据修改的详细实现
2022/04/06 Java/Android