我有{{link1:包含颜色索引图像的.tiff文件}},即图像本身(1024x1024)每个像素包含一个索引(在我的情况下为0,1),在tiff文件中有一个颜色映射表(256x3)将这些代码映射到颜色。
我想使用Python读取索引图像。我正在使用OpenCV,并按照文档尝试了以下方法(不使用-1标志将得到RGB图像):
我期望得到未改变的索引颜色图像,即一个包含值为0或1的1024x1024像素图像。然而,我得到了一个包含值为0或181的1024x1024像素图像。我不知道181是从哪里来的(不是相应颜色值的平均值; (140+215+115)/3=157),而且我也不想手动更改这些值。有没有一种方法可以使用Python OpenCV(或其他库)读取彩色索引TIFF文件,以获取索引图像和(可选的)颜色映射?
一个示例文件在这里。使用MATLAB读取此数据会按预期工作:
code R G B
_________________
0 = 0 0 0
1 = 140 215 115
2 = 255 255 255 ... (other codes are irrelevant for me)
我想使用Python读取索引图像。我正在使用OpenCV,并按照文档尝试了以下方法(不使用-1标志将得到RGB图像):
img = cv2.imread(file, cv2.IMREAD_UNCHANGED) # cv2.IMREAD_UNCHANGED = -1
我期望得到未改变的索引颜色图像,即一个包含值为0或1的1024x1024像素图像。然而,我得到了一个包含值为0或181的1024x1024像素图像。我不知道181是从哪里来的(不是相应颜色值的平均值; (140+215+115)/3=157),而且我也不想手动更改这些值。有没有一种方法可以使用Python OpenCV(或其他库)读取彩色索引TIFF文件,以获取索引图像和(可选的)颜色映射?
一个示例文件在这里。使用MATLAB读取此数据会按预期工作:
img = imread(file); % returns img: (1024, 1024) with values [0, 1]
[img, cmap] = imread(file); % returns img: (1024, 1024) with values [0, 1], cmap (256x3)