• 技术文章 >常见问题 >Python常见问题

    python怎么裁剪图片

    silencementsilencement2020-01-04 10:15:00原创2867

    在这篇文章里我们聊一下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

    推荐学习《python教程

    这里,我们先用imread方法读取待裁剪的图片,然后查看它的shape,shape的输出是(1080, 1920, 3),输出的顺序的是高度、宽度、通

    道数。之后我们利用数组切片的方式获取需要裁剪的图片范围。这里需要注意的是切片给出的坐标为需要裁剪的图片在原图片上的坐标,

    顺序为[y0:y1, x0:x1],其中原图的左上角是坐标原点。最后我们用cv2.imwrite()方法将裁剪得到的图片保存到本地(第一个参数为图片

    名,第二参数为需要保存的图片),如图所示:

    接下来,我们看一下使用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
    上一篇:python文件以什么结尾 下一篇:python里面如何输入数字

    相关文章推荐

    • 怎么找到苹果电脑 python安装位置• python安装完成怎么进入• win8怎么打开python• 如何安装python3.6版本

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网