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 相关文章推荐
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
Python单元和文档测试实例详解
Apr 11 Python
Python Excel处理库openpyxl使用详解
May 09 Python
pycharm安装及如何导入numpy
Apr 03 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
python判断正负数方式
Jun 03 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
如何清空python的变量
Jul 05 Python
如何用python批量调整视频声音
Dec 22 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 Python
python基础之匿名函数详解
Apr 21 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快递单号查询接口使用示例
2014/05/05 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
分享一个asp.net pager分页控件
2012/01/04 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
Vue自定义指令详解
2017/07/28 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python迭代和迭代器详解
2016/11/10 Python
json跨域调用python的方法详解
2017/01/11 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
python3多线程知识点总结
2019/09/26 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
Pycharm小白级简单使用教程
2020/01/08 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
医院学雷锋活动策划方案
2014/02/15 职场文书
高级工程师英文求职信
2014/03/19 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers