python-opencv-图片的裁剪

Posted 天子骄龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

 

 

 

 

以上是关于python-opencv-图片的裁剪的主要内容,如果未能解决你的问题,请参考以下文章

python-OpenCV 使用GrabCut来实现图片的前景与后景的分割

在 C++ 程序中嵌入 python-opencv 的问题(单张图片正常,但在网络摄像头上失败)

ListView 背景图片裁剪

Android平台上裁剪m4a

Python-OpenCV基本操作cv2

Python-opencv打开保存图片含有中文路径的问题