gpt4 book ai didi

python - 使用 python 操作原始二进制图像数据

转载 作者:行者123 更新时间:2023-11-28 17:50:34 31 4
gpt4 key购买 nike

我有一个存储为 .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 而它可能只适用于 JPEG,但这是我想做的。

最佳答案

import numpy as np

shape = (2016, 3032)
im = np.fromfile('visiblespec.bin', 'uint16').reshape(shape)

def tile(pattern, shape):
return np.tile(np.array(pattern, 'bool'), (shape[0] // 2, shape[1] // 2))

r = tile([[0, 0], [0, 1]], shape)
g = tile([[0, 1], [1, 0]], shape)
b = tile([[1, 0], [0, 0]], shape)

im = im.astype('float32')
im[r] *= 255 / 171.
im[g] *= 255 / 107.
im[b] *= 255 / 157.
np.rint(im, out=im)
np.clip(im, 0, 65535, out=im)
im = im.astype('uint16')

im.tofile('visiblespecredone.bin')

关于python - 使用 python 操作原始二进制图像数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923242/

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