使用Python读取和显示原始图像

3
我想尝试使用Spyder Python查看图像,如下所示: skydrive share中的图像为:
- uint16(10位) - 宽度:1376像素,高度:960像素 - 没有标题 - Bayer模式蓝绿、绿红
哪个Python脚本适合?
谢谢。

请先尝试一下,如果遇到问题,请发布代码片段或错误信息。 - RinoTom
请看这里 - will
请注意,以下内容与“processing”编程语言无关,而是有关“图像处理”的内容。 - Mike 'Pomax' Kamermans
你可以将其分为3或4个步骤,每个步骤都是一个单独的问题。1)如何读取图像。2)贝尔解码。3)从线性颜色空间转换为伽马校正的颜色空间,例如sRGB。4)应用白平衡或颜色校正。 - Mark Ransom
这是我从[链接]http://www.kyb.tuebingen.mpg.de/?id=227得到的内容:fin = open('001.raw', 'rb') s = fin.read() fin.close() arr = array.array('H', s) arr.byteswap() img = numpy.array(arr, dtype='uint16').reshape(960,1376) imshow(img, gray()); - bahgia minhat
1个回答

4

以下是一种方式。

从导入开始。

from matplotlib import pyplot as plt
import numpy as np

现在分配空间。
image = np.empty((1376,960), np.uint16)

将图像读入数组中:

image.data[:] = open('20_1-20ms.raw').read()

显示它:

plt.imshow(image)

4
据我所知,这对彩色数据(即每种颜色的三张图像堆叠)不起作用。Matplotlib的imshow需要浮点数或int8才能生成合理的RGB图像。尝试使用int16调用它将产生杂音。你必须将你的10位数据进行位移以生成8位数据,或者转换为浮点数,例如im_float = im_int / (2 ** 10 - 1.)。 - KDN
1
我尝试读取.raw文件,但是出现了这个错误:NotImplementedError: memoryview切片赋值目前仅限于ndim = 1。 - Raiyan Chowdhury

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接