时间:2021-05-22
在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一种利用了OpenCV。两种方式都需要简单的几行代码,这可能也就是现在Python那么流行的原因吧。
首先,我们有一张原始图片,如下图所示:
原始图片
然后,我们利用OpenCV对其进行裁剪,代码如下所示:
import cv2 img = cv2.imread("./data/cut/thor.jpg")print(img.shape)cropped = img[0:128, 0:512] # 裁剪坐标为[y0:y1, x0:x1]cv2.imwrite("./data/cut/cv_cut_thor.jpg", cropped)这里,我们先用imread方法读取待裁剪的图片,然后查看它的shape,shape的输出是(1080, 1920, 3),输出的顺序的是高度、宽度、通道数。之后我们利用数组切片的方式获取需要裁剪的图片范围。这里需要注意的是切片给出的坐标为需要裁剪的图片在原图片上的坐标,顺序为[y0:y1, x0:x1],其中原图的左上角是坐标原点。最后我们用cv2.imwrite()方法将裁剪得到的图片保存到本地(第一个参数为图片名,第二参数为需要保存的图片),如图所示:
OpenCV裁剪所得图片
接下来,我们看一下使用Pillow如何对图片进行裁剪,代码如下所示:
from PIL import Image img = Image.open("./data/cut/thor.jpg")print(img.size)cropped = img.crop((0, 0, 512, 128)) # (left, upper, right, lower)cropped.save("./data/cut/pil_cut_thor.jpg")首先我们使用open方法读取图片,然后查看它的size(这里的size和OpenCV中的shape是类似的),size的输出是(1920, 1080),也就是图片的宽度和高度。之后我们调用crop方法来对图片进行裁剪,crop需要给定一个box参数,box是一个四元组,元组中元素的顺序是需要裁剪得到的图片在原图中的左、上、右、下坐标,即(left, upper, right, lower)。然后,我们使用save方法保存裁剪得到的图片。如下图所示,Pillow可以同样完成OpenCV裁剪图片的工作。
Pillow裁剪所得图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言项目有个需求:裁剪图片,针对头像,下面是要求:大家可以看到这张图片的圆角已经去除,下面说说我在项目利用了两种方式实现此裁剪以及查看技术文档发现更高效裁剪方式
在Word2007文档中,用户可以通过两种方对图片进行裁剪。一种方式是通过图片工具功能区格式选项卡大小分组中的裁剪工具进行图片裁剪;另一种方式则是在大小对话框中
pages中对图片进行遮罩的方式有两种全图按比例遮罩和自定义区域遮罩,该怎么遮盖实现裁剪的效果呢?下面我们就来看看详细的教程。软件名称:PackageforPa
iOS图片裁剪方法,主要有两种,一起来看下。通过CGImage或CIImage裁剪UIImage有cgImage和ciImage属性,分别可以获得CGImage
今天就来说个常用的功能,图片裁剪,可用于头像裁剪啊之类的。用的还是我们之前用的哪个模块pillow1.安装pillow用pip安装pipinstallpillo