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回调函数用法实例分析
May 09 Python
Python类属性与实例属性用法分析
May 09 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
Python笔记之观察者模式
Nov 20 Python
Python如何解除一个装饰器
Aug 07 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
Python if else条件语句形式详解
Mar 24 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
博士208HAF收音机实习报告
2021/03/02 无线电
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php实现的双向队列类实例
2014/09/24 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
Symfony控制层深入详解
2016/03/17 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
Python字符转换
2008/09/06 Python
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
中东奢侈品市场:Coveti
2019/05/12 全球购物
如何利用find命令查找文件
2016/11/18 面试题
微博营销计划书
2014/01/10 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
匿名信格式范文
2015/05/27 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
Go语言 详解net的tcp服务
2022/04/14 Golang