python PIL和CV对 图片的读取,显示,裁剪,保存实现方法

下面我将为您讲解如何使用Python PIL和CV对图片进行读取、显示、裁剪和保存。

图片读取

使用PIL库可以轻松读取图片,只需要使用Image.open()函数并传入图片路径即可。

from PIL import Image

img = Image.open("example.jpg")

使用cv2库也可以读取图片,只需要使用cv2.imread()函数而不是Image.open()函数。

import cv2

img = cv2.imread("example.jpg")

需要注意的是,cv2中图片的格式是BGR而不是RGB,因此在后续处理中,需要注意这一点。

图片显示

使用PIL库实现图片展示,只需要使用Image.show()函数即可。

from PIL import Image

img = Image.open("example.jpg")
img.show()

使用cv2库实现图片展示,只需要使用cv2.imshow()函数即可,但需要注意的是需要再加上一行cv2.waitKey(0),否则图片会一闪而过。

import cv2

img = cv2.imread("example.jpg")

cv2.imshow("image", img)
cv2.waitKey(0)

图片裁剪

使用PIL库实现对图片的裁剪,只需要使用Image.crop()函数即可,该函数传入一个4元组,分别是(left, upper, right, lower),表示裁剪的区域。

from PIL import Image

img = Image.open("example.jpg")

crop_img = img.crop((0, 0, 100, 100))
crop_img.show()

使用cv2库实现对图片的裁剪,只需要使用切片操作即可。

import cv2

img = cv2.imread("example.jpg")

crop_img = img[0:100, 0:100]
cv2.imshow("image", crop_img)
cv2.waitKey(0)

需要注意的是,在使用切片操作时,参数顺序是(y:y+h, x:x+w),其中(x,y)是左上角的坐标,(w,h)是宽度和高度。

图片保存

使用PIL库将图片保存,只需要使用Image.save()函数即可,该函数传入图片保存的路径。

from PIL import Image

img = Image.open("example.jpg")

img.save("new_image.jpg")

使用cv2库将图片保存,只需要使用cv2.imwrite()函数,该函数传入路径和需要保存的图片。

import cv2

img = cv2.imread("example.jpg")

cv2.imwrite("new_image.jpg", img)

以上就是使用Python PIL和cv2库对图片读取、显示、裁剪和保存的详细攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python PIL和CV对 图片的读取,显示,裁剪,保存实现方法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Python入门之模块与包

    Python入门之模块与包 当我们编写代码时,有些功能需要在多个程序中使用,为了不重复写代码,我们可以将这些功能封装到一个单独的.py文件中,然后在需要使用这些功能的程序中 import 这个文件,这个文件就称为模块(module),而多个模块放在一个文件夹中,这个文件夹就是一个包(package)。 定义模块 定义一个模块很简单,我们只需要在文件中编写我们…

    python 2023年6月3日
    00
  • 8行代码实现Python文件去重

    下面我会详细讲解“8行代码实现Python文件去重”的完整攻略。这个过程中包含以下步骤: 安装Python所需依赖库 创建去重脚本 运行脚本进行去重 1. 安装Python所需依赖库 在开始使用Python进行文件去重之前,我们需要安装一个名叫pandas的Python依赖库。可以使用以下命令进行安装: pip install pandas 这个命令将会在你…

    python 2023年6月5日
    00
  • django数据库报错解决汇总:django.db.utils.OperationalError 1045,1049,2003

    当我们在使用Django操作数据库时,有时候会遇到各种各样的错误,其中包括常见的OperationalError。在本文中,我们将详细讲解3种常见的OperationalError错误:django.db.utils.OperationalError1045、django.db.utils.OperationalError1049和django.db.uti…

    python 2023年5月13日
    00
  • 在 Python 与 C 中打印空字符(“\x00”)

    【问题标题】:Printing Null Character (“\x00”) in Python vs C在 Python 与 C 中打印空字符(“\x00”) 【发布时间】:2023-04-06 20:29:02 【问题描述】: 当我编写代码并运行语句时: print “\x00\x00\x00” 在 Python 中,它输出三个空格,后跟一个换行符。但…

    Python开发 2023年4月7日
    00
  • 可能是史上最细的python中import详解

    史上最细的Python中import详解 前言 Python 中的 import 有着非常广泛的应用,它可以用于导入一个模块或者一个模块中的函数、类等。本文将对 Python 中的 import 进行详细的讲解和说明,希望能够对大家使用 Python 时理解 import 有所帮助。 导入模块的基本用法 在 Python 中,我们使用 import 关键字来…

    python 2023年5月13日
    00
  • Python pickle模块实现Python对象持久化存储

    Python pickle是Python自带的一种序列化和反序列化模块,可以实现Python对象的持久化存储。持久化存储是指将Python对象保存成文件或者在网络上传输,而不会使Python对象失去其结构和状态(Python对象在运行时只存在于内存中)。 pickle模块的使用 pickle模块的基本操作 Pickle模块的基本操作如下: import pi…

    python 2023年6月2日
    00
  • Python正则表达式以及常用匹配实例

    Python正则表达式以及常用匹配实例 正则表达式是一种用于描述字符串模式的语言,它可以用于匹配、查找、替换和割字符串。Python中的re模块供了对正则表式的支持,可以便地进行字符串的处理。本文将详细讲解Python中正则表达式的语法和re模块的常用函数以及两个常的匹配实例。 正则表达式语法 正则表达式由一些特殊字符和普通字符组成,用于字符串模。下面是一些…

    python 2023年5月14日
    00
  • Python中关于文件的具体操作与介绍

    Python 中关于文件的操作是 Python 编程中必须掌握的重要知识点之一。涉及到文件的打开、读取、写入、关闭等多种操作,下面将详细讲解。 文件的打开与关闭 Python 中打开文件使用内置函数 open(),语法如下: open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newl…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部