vin*_*nt 2 python image crop python-imaging-library
from PIL import Image
img=Image.open('/home/ahmed/internship/cnn_ocr/image1.png')
img.size
(2458, 3504)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试按以下方式裁剪图像时:
img.crop(414,122,650,338)
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误:
Traceback (most recent call last):
File "/usr/lib/python3.5/code.py", line 91, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
TypeError: crop() takes from 1 to 2 positional arguments but 5 were given
Run Code Online (Sandbox Code Playgroud)
但是crop()
需要四个参数:left,top,right,bottom。怎么了
No crop
需要一个显式参数:4元组(当然也包含self
)。该文档指出:
Image.crop(box=None)
返回此图像的矩形区域。的
box
是一个四元组 限定所述左,上,右,和下像素坐标。注意:在Pillow 3.4.0之前,这是一个懒惰的操作。
参数:
box
-裁剪矩形,作为(左,上,右,下)元组。
返回类型: Image
返回:一个Image对象。
(添加格式)
因此,您应该将其重写为:
img.crop((414,122,650,338))
# ^ 4-tuple ^
Run Code Online (Sandbox Code Playgroud)
此外,最好将输出分配给变量(可能是变量img
本身):
some_other_img = img.crop((414,122,650,338))
Run Code Online (Sandbox Code Playgroud)