【发布时间】:2011-03-14 18:57:29
【问题描述】:
我正在尝试使用 NumPy 将 PIL 图像转换为数组。然后我想将该数组转换为 Lab 值,修改这些值,然后将数组转换回图像并保存图像。我有以下代码:
import Image, color, numpy
# Open the image file
src = Image.open("face-him.jpg")
# Attempt to ensure image is RGB
src = src.convert(mode="RGB")
# Create array of image using numpy
srcArray = numpy.asarray(src)
# Convert array from RGB into Lab
srcArray = color.rgb2lab(srcArray)
# Modify array here
# Convert array back into Lab
end = color.lab2rgb(srcArray)
# Create image from array
final = Image.fromarray(end, "RGB")
# Save
final.save("out.jpg")
此代码依赖于 PIL、NumPy 和 color。颜色可以在 SciPy 主干here 中找到。我下载了 color.py 文件以及某些 colordata .txt files。我修改了 color.py 以便它可以独立于 SciPy 源运行,并且所有 似乎 都可以正常工作 - 当我运行转换时,数组中的值会发生变化。
我的问题是,当我运行上面的代码时,它只是将图像转换为 Lab,然后再转换回 RGB 并保存它,我得到以下图像:
出了什么问题?是不是我使用了 color.py 中的函数?
供参考:
源图片 - face-him.jpg
测试所需的所有源文件 - colour-test.zip
【问题讨论】:
-
您使用的是旧版本的 Scipy 吗?导入颜色一直失败; scipy_base(对我来说不存在)尝试使用的所有函数都是标准的 Numpy 函数(
asarray、swapaxes等)。将color.py的前两行修改为import numpy as sb和import numpy as scipy
标签: python colors numpy python-imaging-library color-space