【发布时间】:2020-08-13 19:51:02
【问题描述】:
我正在尝试完成基本的图像处理。这是我的算法:
求 n., n+1., n+2.像素的 RGB 值并根据这些值创建新图像。
我正在获取第一个像素的红色值、第二个像素的绿色值和第三个像素的蓝色值并创建像素。对图像中的每一行都继续此操作。
这是我在 python 中的示例代码:
import glob
import ntpath
import numpy
from PIL import Image
images = glob.glob('balls/*.png')
data_compressed = numpy.zeros((540, 2560, 3), dtype=numpy.uint8)
for image_file in images:
print(f'Processing [{image_file}]')
image = Image.open(image_file)
data = numpy.loadasarray(image)
for i in range(0, 2559):
for j in range(0, 539):
pix_x = j * 3 + 1
red = data[pix_x - 1, i][0]
green = data[pix_x, i][1]
blue = data[pix_x + 1, i][2]
data_compressed[j, i] = [red, green, blue]
im = Image.fromarray(data_compressed)
image_name = ntpath.basename(image_file)
im.save(f'export/{image_name}')
我的输入和输出图像是 RGB 格式。我的代码每张图片需要 5 秒。我愿意接受任何优化此任务的想法。如果需要,我可以使用 c++ 或任何其他语言。
【问题讨论】:
-
所有像素都是灰度的还是可以是任何颜色?
-
可以是任何颜色
标签: python image-processing optimization