gpt4 book ai didi

python - 使用PIL将一张512*256的图片分成2张每张256*256的图片

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:08 28 4
gpt4 key购买 nike

我有一张尺寸为 512 * 256 的图片,

enter image description here

左边部分应该是 NN 的输入,右边部分必须是相应的输出。因此,每个图像的尺寸为 256 * 256。

到目前为止,我为拆分这两个图像所做的工作:

image_dir = 'images'
image_filenames = os.listdir( image_dir )
for filename in image_filenames:
image = Image \
.open(os.path.join( image_dir, filename)) \
.convert( 'RGB' )
width , height = image.size
x.append( np.asarray( image.crop( ( width , width/2 , width , width/2 )) ))
print( x )

输出显示一个空的图像,大小为 0 * 0,

[array(<PIL.Image.Image image mode=RGB size=0x0 at 0x27049C55CF8>,
dtype=object), array(<PIL.Image.Image image mode=RGB size=0x0 at 0x27049C55710>,
dtype=object)]

How can I perfectly split the 512 * 256 image into 2 images of 256 *256 without the problems above using PIL or even NumPy ?

最佳答案

正如您暗示的那样,您不关心解决方案是否使用 PIL,这里是一个只涉及在命令行使用 ImageMagick 的解决方案...不需要编写任何代码:

magick image.jpg -crop 50x100% sub-%d.jpg

这给了你这两半:

sub-0.jpg
sub-1.jpg

ImageMagick 包含在大多数 Linux 发行版中,并且适用于 macOS 和 Windows。如果您使用的是 v6 或更早版本,请将 magick 替换为 convert


如果您有很多事情要做,您可以使用 GNU Parallel 像这样并行完成它们:

parallel 'magick {} -crop 50x100% {.}-sub-%d.jpg' ::: *.jpg

所以,如果您从 fred.jpgbill.jpg 开始,您会得到:

-rw-r--r--   1 mark  staff      13924 13 Jun 16:52 fred-sub-0.jpg
-rw-r--r-- 1 mark staff 11650 13 Jun 16:52 fred-sub-1.jpg
-rw-r--r-- 1 mark staff 13924 13 Jun 16:52 bill-sub-0.jpg
-rw-r--r-- 1 mark staff 11650 13 Jun 16:52 bill-sub-1.jpg

关于python - 使用PIL将一张512*256的图片分成2张每张256*256的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56580955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com