我有一个存储为 .bin 文件的原始二进制图像,上面有一些重要数据。问题是颜色信息有点偏离,所以我需要稍微改变一下。有什么方法可以让我将 R、G 和 B 值乘以一个标量,然后将其保存为原始二进制文件?
我希望使用 python 成像库来做到这一点,因为我已经知道图像模块的基础知识。我需要将每个像素乘以相同的值,但对于 R、G 和 B,它将是不同的值。我有以下代码来打开文件,但是我不知道如何在那里改变 RGB 值.
fileName = raw_input("Enter a file name: ")
with open(fileName) as f:
im = Image.fromstring('RGB', (3032, 2016), f.read())
如果您需要更多信息,请告诉我。
更新:
我编写了以下代码,它以我想要的方式转换图像,但它给了我一个错误。代码如下:
with open(C:\Users\name\imagedata\visiblespec.bin, 'rb') as f:
im = Image.fromstring('RGB', (3032, 2016), f.read())
im = im.convert('RGB')
r, g, b = im.split()
r = r.point(lambda i: i * (255/171))
g = g.point(lambda i: i * (255/107))
b = b.point(lambda i: i * (255/157))
out = Image.merge('RGB', (r, g, b))
out.save(C:\Users\name\imagedata\visiblespecredone.bin)
我的错误是这样的:
Traceback (most recent call last):
File "C:\Users\Patrick\workspace\colorCorrect\src\rawImage.py", line 18, in <module>
im = Image.fromstring('RGB', (3032, 2016), f.read())
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1797, in fromstring
im.fromstring(data, decoder_name, args)
File "C:\Python27\lib\site-packages\PIL\Image.py", line 594, in fromstring
raise ValueError("not enough image data")
ValueError: not enough image data
这可能是编辑 RGB 值的完全错误的方法,我知道它适用于 JPEG,而 t 可能只适用于 JPEG,但这是我想做的。