首页 > 编程语言 >Python PIL Image.crop()详解+裁剪四元组定位的小技巧

Python PIL Image.crop()详解+裁剪四元组定位的小技巧

时间:2023-08-14 16:13:09浏览次数:39  
标签:PIL Python Image 裁剪 300 crop 四元组 坐标 100

0 Image.crop详解

image.crop是Python中用于裁剪图片的函数。在使用该函数前,我们需要先导入PIL库,即Python Image Library。

from PIL import Image

# 打开图片
img = Image.open('example.jpg')

# 图片的裁剪区域(区域左上角的坐标为(100, 100),右下角的坐标为(300, 300))
crop_area = (100, 100, 300, 300)

# 裁剪并保存图片
crop_img = img.crop(crop_area)
crop_img.save('example_crop.jpg')

image.crop的参数为一个四元组,表示裁剪区域的左上角坐标和右下角坐标。使用该函数时需要注意以下几点:

1、四元组的坐标值必须为整数,否则会报错。

2、裁剪后的图片像素尺寸需要与裁剪区域一致,否则会出现图片被压缩或拉伸的情况。

3、裁剪区域的左上角坐标需要在图片范围内,否则会报错。

1 如何定位crop_area四元组呢?

借助windows自带的画图工具,打开 标尺和网格 进行快速定位,下面举个例子。

  1. 原始图片,我想裁剪出图中单词的列,用于我做图像识别
    1

  2. 用画图工具打开,查看->标尺、网格线全部打开
    2

  3. 定位。 注意,画图工具中,竖向是x坐标,横向是y坐标,如下图所示,得到左上角坐标(300,100),右下角坐标(2200,400)
    3

  4. 对于PIL图像库中的坐标,则是横向是x坐标,纵向是y坐标,所以代码中的左上角坐标是(100,300),右下角坐标(400,2200)

crop_area = (100, 300, 400, 2200)

标签:PIL,Python,Image,裁剪,300,crop,四元组,坐标,100
From: https://www.cnblogs.com/jye159X/p/17628921.html

相关文章

  • 9.0 Python 内置模块应用
    Python是一种高级、面向对象、通用的编程语言,由GuidovanRossum发明,于1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。Python语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库和......
  • python的format打印格式'{0:2d} @ {1:2d} {2}{0:<2d}'的含义
    #BEGINBISECT_DEMOimportbisectimportsysHAYSTACK=[1,4,5,6,8,12,15,20,21,23,23,26,29,30]NEEDLES=[0,1,2,5,8,10,22,23,29,30,31]ROW_FMT='{0:2d}@{1:2d}{2}{0:<2d}'defdemo(bisect_fn):forneedleinreversed(N......
  • Python基础day64 auth模块
    csrf跨站请求的相关装饰器#Django中有一个中间件对csrf跨站做了验证,我只要把csrf的这个中间件打开,意味着所有的方法都要被验证在所有的视图函数中:只有几个视图函数做验证只有几个函数不做验证#csrf_protect:哪个视图函数加了这个装饰器,这个函数就会做验证#csrf_exempt......
  • ​Python爬虫IP代理池的建立和使用
    写在前面建立Python爬虫IP代理池可以提高爬虫的稳定性和效率,可以有效避免IP被封锁或限制访问等问题。下面是建立Python爬虫IP代理池的详细步骤和代码实现:1.获取代理IP我们可以从一些代理IP网站上获取免费或付费的代理IP,或者自己租用代理IP服务。这里我们以站大爷代理为例,获取......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都......
  • 6.0 Python 使用函数装饰器
    装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为"装饰器"(Decorator),装饰器的功能非常强大,装饰器一般接受一个函数对象作为参数,以对其进行增强,相当于C++中的构造函数,与析构函数。装饰器本质上是一个python函数,它可以让其他函数......
  • 7.0 Python 面向对象编程
    python是一种面向对象的编程语言,面向对象编程(Object-OrientedProgramming,OOP)是一种编程思想,其核心概念是“对象”。对象是指一个具有特定属性和行为的实体,而面向对象编程就是通过对这些实体进行抽象、分类、封装和继承等操作,来实现程序的结构和逻辑。在python中,我们可以通过定义类......
  • 9.0 Python 内置模块应用
    Python是一种高级、面向对象、通用的编程语言,由GuidovanRossum发明,于1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。Python语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都可......
  • 6.0 Python 使用函数装饰器
    装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为"装饰器"(Decorator),装饰器的功能非常强大,装饰器一般接受一个函数对象作为参数,以对其进行增强,相当于C++中的构造函数,与析构函数。装饰器本质上是一个python函数,它可以让其他函......