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访问纯真IP数据库的代码
May 19 Python
python使用scrapy解析js示例
Jan 23 Python
下载给定网页上图片的方法
Feb 18 Python
Python中的二叉树查找算法模块使用指南
Jul 04 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 Python
使用Python进行防病毒免杀解析
Dec 13 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
python基于win32api实现键盘输入
Dec 09 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 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
牡丹941资料
2021/03/01 无线电
php array_search() 函数使用
2010/04/13 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
Python向日志输出中添加上下文信息
2017/05/24 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python matplotlib拟合直线的实现
2019/11/19 Python
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
建筑工程技术应届生自荐信
2013/09/27 职场文书
旅游管理本科生求职信
2013/10/14 职场文书
就业自荐书
2013/12/05 职场文书
学校师德承诺书
2014/05/23 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
上诉状格式
2015/05/23 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript