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文件和目录操作方法大全(含实例)
Mar 12 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python中使用MELIAE分析程序内存占用实例
Feb 18 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
详解Python发送邮件实例
Jan 10 Python
Python中装饰器学习总结
Feb 10 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 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
PDO防注入原理分析以及注意事项
2015/02/25 PHP
php链表用法实例分析
2015/07/09 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
基于JavaScript 类的使用详解
2013/05/07 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
python更改已存在excel文件的方法
2018/05/03 Python
python实现自动发送邮件
2018/06/20 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python Gitlab Api 使用方法
2019/08/28 Python
python检测服务器端口代码实例
2019/08/31 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
行政文员岗位职责
2013/11/08 职场文书
美术师范毕业生自荐信
2013/11/16 职场文书
热门专业求职信
2014/05/24 职场文书
体育节口号
2014/06/19 职场文书
学校读书活动总结
2014/06/30 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
2015年科普工作总结
2015/07/23 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python