dan*_*dan 0 python image-processing python-imaging-library
我正在尝试按RGB值的顺序对图像的像素进行排序.作为Python的新手我试过这个:
from PIL import Image
source = Image.open("source.jpg")
colors = source.getcolors(source.size[0] * source.size[1]) #maxcolor value =256, get all colors with source.size[0] * source.size[1]
pixels = []
for i, color in colors:
pixels.extend(i * [color])
pixels.sort()
new = Image.new('RGB', source.size)
new.putdata(pixels)
new.save("new.png")
Run Code Online (Sandbox Code Playgroud)
它适用于40x40像素左右的小文件.但目标是在高达3000x2000分辨率的照片上使用它,我尝试运行它,但两小时后仍然没有尽头.代码可以优化,我做了一些完全错误的事情,还是Python根本不适合这种任务?
Python中的缩进是关键,否则您可以运行每次迭代都不会遇到的代码.
每次循环时都会保存文件,因为图像生成是缩进的.相反,尝试:
from PIL import Image
source = Image.open("source.jpg")
colors = source.getcolors(source.size[0] * source.size[1]) #maxcolor value =256, get all colors with source.size[0] * source.size[1]
pixels = []
for i, color in colors:
pixels.extend(i * [color])
pixels.sort()
new = Image.new('RGB', source.size)
new.putdata(pixels)
new.save("new.png")
Run Code Online (Sandbox Code Playgroud)