Python PIL 裁剪时进程意外退出

Python PIL unexpected quit of process when cropping

我正在编写一个简短的脚本,它将 tiff 文件分成更小的部分。

文件比一般大(最大文件有 16000 x 28800 像素 1 位深度)

我的想法是,裁剪每个矩形并将其另存为新文件,分辨率与原始图像相同


     from PIL import Image

     Image.MAX_IMAGE_PIXELS = None
     rows = 9
     cols = 5

     im = Image.open("Patches_TP_2540.tif")
     width, heigth = im.size
     res = 2540

     print(width, heigth)

     patchSize = int(width / cols)

     offset_x_tl = 0
     offset_y_tl = 0
     for r in range(rows):
        offset_y_tl = r * patchSize
        for c in range(cols):
           print(r, c)
           offset_x_tl = c * patchSize
           offset_y_br = offset_y_tl + patchSize
           offset_x_br = offset_x_tl + patchSize
           print(offset_x_tl, offset_y_tl, offset_x_br, offset_y_br)

           croped_area = im.crop((offset_x_tl, offset_y_tl, offset_x_br, offset_y_br))
           croped_area.save("Patch_"+ str(res) +"_" + str(r) + "_" + str(c) +".tiff", dpi=(2540,2540)) 
  


    print("Done!")

如果我 运行 这段代码结束时不会打印完成!如果我删除 croped_area 和保存命令,代码是 运行ning 没问题。创建一个新图像并保存它也可以。

我还尝试使用带有 im.copy() 的临时图像。如果我这样做,代码会在复制过程中停止。

也许有人可以帮我解决这个问题,并提供一些解决问题的技巧。

感谢阅读, 蒂莫

Mark Setchell 请求的 Tiff Exiff 信息

ExiffTool Output
ExifTool Version Number         : 12.36
File Name                       : Patches_TP_2540.tif
Directory                       : .
File Size                       : 1967 KiB
File Modification Date/Time     : 2021:11:23 22:04:59+01:00
File Access Date/Time           : 2021:11:24 16:38:45+01:00
File Creation Date/Time         : 2021:11:23 22:04:58+01:00
File Permissions                : -rw-rw-rw-
File Type                       : TIFF
File Type Extension             : tif
MIME Type                       : image/tiff
Exif Byte Order                 : Little-endian (Intel, II)
Subfile Type                    : Full-resolution image
Image Width                     : 8000
Image Height                    : 14400
Bits Per Sample                 : 1
Compression                     : LZW
Photometric Interpretation      : WhiteIsZero
Strip Offsets                   : (Binary data 407 bytes, use -b option to extract)
Orientation                     : Horizontal (normal)
Samples Per Pixel               : 1
Rows Per Strip                  : 262
Strip Byte Counts               : (Binary data 329 bytes, use -b option to extract)
X Resolution                    : 2540
Y Resolution                    : 2540
Resolution Unit                 : inches
Software                        : Adobe Photoshop CS2 Windows
Modify Date                     : 2021:11:23 22:04:58
XMP Toolkit                     : 3.1.1-111
Format                          : image/tiff
Creator Tool                    : Adobe Photoshop CS2 Windows
Create Date                     : 2021:11:23 22:04:34+01:00
Metadata Date                   : 2021:11:23 22:04:58+01:00
Document ID                     : uuid:2A661B24A04CEC1180E9F8C3BA2D9028
Instance ID                     : uuid:2B661B24A04CEC1180E9F8C3BA2D9028
Native Digest                   : 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;5F3D788B45930CC20D5D52E96A1450A4
Color Mode                      : Bitmap
History                         :
IPTC Digest                     : 00000000000000000000000000000000
Displayed Units X               : inches
Displayed Units Y               : inches
Print Style                     : Centered
Print Position                  : 0 0
Print Scale                     : 1
Global Angle                    : 120
Global Altitude                 : 30
Copyright Flag                  : False
URL List                        :
Slices Group Name               : Patches
Num Slices                      : 1
Pixel Aspect Ratio              : 1
Photoshop Thumbnail             : (Binary data 10944 bytes, use -b option to extract)
Has Real Merged Data            : Yes
Writer Name                     : Adobe Photoshop
Reader Name                     : Adobe Photoshop CS2
Color Space                     : Uncalibrated
Exif Image Width                : 8000
Exif Image Height               : 14400
Image Size                      : 8000x14400
Megapixels                      : 115.2

根据 Mark Setchell 的要求设置枕头

Pillow 8.2.0
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)]
--------------------------------------------------------------------
Python modules loaded from C:\Users\timo\Anaconda3\envs\tensorflow\lib\site-packages\PIL
Binary modules loaded from C:\Users\timo\Anaconda3\envs\tensorflow\lib\site-packages\PIL
--------------------------------------------------------------------
--- PIL CORE support ok, compiled for 8.2.0
--- TKINTER support ok, loaded 8.6
--- FREETYPE2 support ok, loaded 2.10.4
*** LITTLECMS2 support not installed
*** WEBP support not installed
*** WEBP Transparency support not installed
*** WEBPMUX support not installed
*** WEBP Animation support not installed
--- JPEG support ok, compiled for 9.0
*** OPENJPEG (JPEG2000) support not installed
--- ZLIB (PNG/ZIP) support ok, loaded 1.2.11
--- LIBTIFF support ok, loaded 4.2.0
*** RAQM (Bidirectional Text) support not installed
*** LIBIMAGEQUANT (Quantization method) support not installed
*** XCB (X protocol) support not installed
--------------------------------------------------------------------
BLP
Extensions: .blp
Features: open
--------------------------------------------------------------------
BMP image/bmp
Extensions: .bmp
Features: open, save
--------------------------------------------------------------------
BUFR
Extensions: .bufr
Features: open, save
--------------------------------------------------------------------
CUR
Extensions: .cur
Features: open
--------------------------------------------------------------------
DCX
Extensions: .dcx
Features: open
--------------------------------------------------------------------
DDS
Extensions: .dds
Features: open
--------------------------------------------------------------------
DIB image/bmp
Extensions: .dib
Features: open, save
--------------------------------------------------------------------
EPS application/postscript
Extensions: .eps, .ps
Features: open, save
--------------------------------------------------------------------
FITS
Extensions: .fit, .fits
Features: open, save
--------------------------------------------------------------------
FLI
Extensions: .flc, .fli
Features: open
--------------------------------------------------------------------
FPX
Extensions: .fpx
Features: open
--------------------------------------------------------------------
FTEX
Extensions: .ftc, .ftu
Features: open
--------------------------------------------------------------------
GBR
Extensions: .gbr
Features: open
--------------------------------------------------------------------
GIF image/gif
Extensions: .gif
Features: open, save, save_all
--------------------------------------------------------------------
GRIB
Extensions: .grib
Features: open, save
--------------------------------------------------------------------
HDF5
Extensions: .h5, .hdf
Features: open, save
--------------------------------------------------------------------
ICNS
Extensions: .icns
Features: open
--------------------------------------------------------------------
ICO image/x-icon
Extensions: .ico
Features: open, save
--------------------------------------------------------------------
IM
Extensions: .im
Features: open, save
--------------------------------------------------------------------
IMT
Features: open
--------------------------------------------------------------------
IPTC
Extensions: .iim
Features: open
--------------------------------------------------------------------
JPEG image/jpeg
Extensions: .jfif, .jpe, .jpeg, .jpg
Features: open, save
--------------------------------------------------------------------
JPEG2000 image/jp2
Extensions: .j2c, .j2k, .jp2, .jpc, .jpf, .jpx
Features: open, save
--------------------------------------------------------------------
MCIDAS
Features: open
--------------------------------------------------------------------
MIC
Extensions: .mic
Features: open
--------------------------------------------------------------------
MPEG video/mpeg
Extensions: .mpeg, .mpg
Features: open
--------------------------------------------------------------------
MSP
Extensions: .msp
Features: open, save, decode
--------------------------------------------------------------------
PCD
Extensions: .pcd
Features: open
--------------------------------------------------------------------
PCX image/x-pcx
Extensions: .pcx
Features: open, save
--------------------------------------------------------------------
PIXAR
Extensions: .pxr
Features: open
--------------------------------------------------------------------
PNG image/png
Extensions: .apng, .png
Features: open, save, save_all
--------------------------------------------------------------------
PPM image/x-portable-anymap
Extensions: .pbm, .pgm, .pnm, .ppm
Features: open, save
--------------------------------------------------------------------
PSD image/vnd.adobe.photoshop
Extensions: .psd
Features: open
--------------------------------------------------------------------
SGI image/sgi
Extensions: .bw, .rgb, .rgba, .sgi
Features: open, save
--------------------------------------------------------------------
SPIDER
Features: open, save
--------------------------------------------------------------------
SUN
Extensions: .ras
Features: open
--------------------------------------------------------------------
TGA image/x-tga
Extensions: .icb, .tga, .vda, .vst
Features: open, save
--------------------------------------------------------------------
TIFF image/tiff
Extensions: .tif, .tiff
Features: open, save, save_all
--------------------------------------------------------------------
WEBP
Features: open
--------------------------------------------------------------------
WMF
Extensions: .emf, .wmf
Features: open, save
--------------------------------------------------------------------
XBM image/xbm
Extensions: .xbm
Features: open, save
--------------------------------------------------------------------
XPM image/xpm
Extensions: .xpm
Features: open
--------------------------------------------------------------------
XVTHUMB
Features: open
--------------------------------------------------------------------

它接缝 PIL 并且作物在 LZW 压缩方面存在一些问题。 使用 Photoshop 删除压缩后脚本 运行 符合预期。

如果您有边界框区域的想法可以使用这种方法裁剪图像

from PIL import Image
img = Image.open("imagefile")

#例如

的边界区域

#left = 90, top = 580, right = 1600, bottom = 2000

img_res = img.crop((left, top, right, bottom))
with open(outfile4, 'w') as f:
    img_res.save(outfile_path,'JPEG')