PIL官方教程翻译

PIL教程

使用图像类

在python图像处理库(即PIL)中最重要的类是Image类,在模块中的定义也是同样的。你可以有多种方法创建这个类的实例,可以从文件中加载图像,处理其它图像,抑或从零开始创建一个图像。

从文件中加载一个图像,可以使用Image 模块中的open函数。

>>> import Image
>>> im = Image.open("lena.ppm")

如果成功,这个函数会返回一个Image对象。你现在可以使用这个实例的属性去检查这个图片文件的内容。

>>> print im.format, im.size, im.mode
PPM (512, 512) RGB

通过format方法可以辨别出图片的来源。如果这个图片不是从一个文件中读取的,它将被设置为None。Size属性是一个两个元素的元组,包含着图像的高和宽。Mode属性定义着图像的颜色空间,像素的数据类型和深度。通常,’‘L’’(luminance)代表图片为灰度图,"RGB"代表图片真实的彩色图,"CMYK"用于将要印刷的图片。

如果文件没有被打开,IOError异常将会被抛出。

一旦你有了一个Image类的实列,你便可以使用这个类中定义的方法去处理和操作这个图片了。例如,我们展示出我们刚刚读入的图片:

>>> im.show()

(标准版本的show函数并不是非常高效,原因是它首先将图像存成的一个临时文件然后调用xv程序去展示这个图像。如果你没有安装xv,它甚至不会工作。但是,当它确实工作的时候,它将给调试和测试带来极大的方便。)

下面的部分将提供这个库中包含的函数的概览。

读写图像

PIL库支持很多种类的的图像格式。从硬盘中读取文件的时候,可以使用Image模块中的open函数。你打开一个图像的时候不需要去知道这个图像的格式。库会自动地根据文件的内容来确定图片的格式。

如果要存储图片,可以使用Image中的save方法。当存储图片的时候,图片名字变得重要起来。除非你指定格式,PIL库用文件的名的后缀来判断使用用哪一种存储格式。

Convert files to JPEG

import os, sys
import Image

for infile in sys.argv[1:]:
    f, e = os.path.splitext(infile)
    outfile = f + ".jpg"
    if infile != outfile:
        try:
            Image.open(infile).save(outfile)
        except IOError:
            print "cannot convert", infile

第二个参数可以提供给save方法,这将显式地指明存储格式。如果使用非标准扩展名,则必须始终按以下方式指定格式:

Create JPEG Thumbnails
import os, sys
import Image

size = 128, 128

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size)
            im.save(outfile, "JPEG")
        except IOError:
            print "cannot create thumbnail for", infile

需要注意的是,除非确实需要,否则库不会解码或加载光栅数据。打开文件时,将读取文件头以确定文件格式,并提取解码文件所需的模式、大小和其他属性等内容,但稍后才会处理其余文件。

这意味着打开图像文件是一个快速的操作,与文件大小和压缩类型无关。下面是一个快速识别一组图像文件的简单脚本:

Identify Image Files

import sys
import Image

for infile in sys.argv[1:]:
    try:
        im = Image.open(infile)
        print infile, im.format, "%dx%d" % im.size, im.mode
    except IOError:
        pass
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然!下面是一个关于 pytesseract 的详细教程: 1. 安装 pytesseract 首先,确保你已经安装了 Python 和 pip。然后打开终端或命令提示符,运行以下命令来安装 pytesseract: ``` pip install pytesseract ``` 此外,为了使用 pytesseract,你还需要安装 Tesseract OCR 引擎。对于不同的操作系统,请按照以下步骤进行安装: - 对于 Windows 用户: - 访问 https://github.com/UB-Mannheim/tesseract/wiki 下载最新的 Windows 安装程序。 - 运行安装程序并按照向导进行安装。确保将 Tesseract 添加到系统环境变量中。 - 对于 macOS 用户: - 使用 Homebrew 运行以下命令来安装 Tesseract: ``` brew install tesseract ``` - 对于 Linux 用户: - 使用适用于你的 Linux 发行版的包管理器来安装 Tesseract。例如,在 Ubuntu 上,可以运行以下命令: ``` sudo apt-get install tesseract-ocr ``` 2. 导入 pytesseract 在你的 Python 代码中导入 pytesseract 模块: ```python import pytesseract ``` 3. 使用 pytesseract 识别图像中的文本 有两种方法可以使用 pytesseract 识别图像中的文本:使用图像文件路径或使用图像数据对象。以下是两种方法的示例代码: - 使用图像文件路径: ```python from PIL import Image # 打开图像文件 image = Image.open('image.png') # 使用 pytesseract 识别图像中的文本 text = pytesseract.image_to_string(image) # 打印识别结果 print(text) ``` - 使用图像数据对象: ```python from PIL import Image import io # 打开图像文件 with open('image.png', 'rb') as f: image_data = f.read() # 创建图像数据对象 image = Image.open(io.BytesIO(image_data)) # 使用 pytesseract 识别图像中的文本 text = pytesseract.image_to_string(image) # 打印识别结果 print(text) ``` 以上代码中,`image.png` 是你要识别的图像文件的路径。 4. 高级用法 pytesseract 还提供了一些高级功能,例如指定识别语言、设置识别参数等。你可以通过调用 pytesseract 模块的各种函数来实现这些功能。以下是一些示例代码: - 指定识别语言: ```python # 指定英文作为识别语言 text = pytesseract.image_to_string(image, lang='eng') # 指定多个语言作为识别语言 text = pytesseract.image_to_string(image, lang='eng+chi_sim') ``` - 设置识别参数: ```python # 设置识别参数 config = '--psm 6' # 使用 Page Segmentation Mode 6 text = pytesseract.image_to_string(image, config=config) ``` 更多关于 pytesseract 的用法和参数,请参考 pytesseract 的官方文档。 希望这个教程对你有帮助!如果还有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值