python通过opencv实现图片裁剪原理解析

yipeiwu_com6年前Python基础

这篇文章主要介绍了python通过opencv实现图片裁剪原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

图像裁剪的基本概念 :
图像裁剪是指将图像中我们想要的研究区以外的区域去除,经常是按照行政区划或研究区域的边界对图像进行裁剪。例如,一张500×400的图像,我们只想要中间的250×200的区域,就可以使用图像裁剪将四周的区域去除。

在实际开发工作中,我们经常需要对图像进行分幅裁剪,按照ERDAS实际图像分幅裁剪的过程,可以将图像分幅裁剪分为规则分幅裁剪和不规则分幅裁剪两种类型。

规则分幅裁剪:指裁剪图像的边界范围是一个矩形。裁剪时只需要通过左上角和右下角两点的坐标,就可以确定图像的裁剪位置。

不规则分幅裁剪:指裁剪图像的边界范围是任意多边形,裁剪时必须首先生成一个完整的闭合多边形区域。

图像裁剪的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)

效果图:

不规则分幅裁剪

对于不规则分幅裁剪,首先得生成一个完整的闭合多边形区域。假设我们现在要将图像裁剪成一个圆形图像,那么我们就得首先生成一个圆形。OpenCV中为我们提供了专门用于画圆形图的方法circle

,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值

相关文章

OpenCV实现人脸识别

主要有以下步骤: 1、人脸检测 2、人脸预处理 3、从收集的人脸训练机器学习算法 4、人脸识别 5、收尾工作 人脸检测算法: 基于Haar的脸部检测器的基本思想是,对于面部正面大部分区域...

Win10环境python3.7安装dlib模块趟过的坑

Win10环境python3.7安装dlib模块趟过的坑

在头条看了一篇文章,说五行代码实现人脸识别,一时感兴趣了,来搞搞 先是按照文章说的 操作了几步,到后面虽然,import dlib 不报错,但是 代码里面运行的时候 detector...

bpython 功能强大的Python shell

bpython 功能强大的Python shell

Python是一个非常实用、流行的解释型编程语言,其优势之一就是可以借助其交互的shell进行探索式地编程。你可以试着输入一些代码,然后马上获得解释器的反馈,而不必专门写一个脚本。但是P...

Python设计模式之命令模式原理与用法实例分析

Python设计模式之命令模式原理与用法实例分析

本文实例讲述了Python设计模式之命令模式原理与用法。分享给大家供大家参考,具体如下: 命令模式(Command Pattern):将请求封装成对象,从而使可用不同的请求对客户进行参数...

Python中endswith()函数的基本使用

函数:endswith() 作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型 相关函数:判断字符串开头 startswith() 一、函数说明 语法:string.en...