2014-12-06 83 views
0

一般問題描述TIFF16圖像看起來在Windows文件瀏覽器不同,MATLAB

我有33個TIFF16圖像和我想用MATLAB做對他們進行一些處理。所以閱讀它們是第一步。從網絡下載圖像後,嘗試使用MATLAB的imread(以及Tiffread)讀取圖像。我使用imshow顯示圖像。 Windows File Viewer和MATLAB顯示的圖像完全不同。我不能處理它們,因爲我不相信MATLAB已經正確讀取它們。我現在給出更具體的問題。

編輯:如果有幫助,所述TIFF16圖像的細節爲:TIFF(每通道,ProPhoto RGB色彩空間16位,無損壓縮)

更多細節:

我下載一個圖像a0008-WP_CRW_3959.tif。目的地:去this鏈接 - >img0008 - >專家B(如果有人想嘗試,否則我有截圖下面)。

我用讀MATLAB的形象:img=imread('imgFilename.tif','tiff'); imshow(img,[]);

t = Tiff('imgFilename.tif','r'); 
imageData = read(t); 
imshow(imageData); 

現在,我顯示的Windows文件瀏覽器的快照:

enter image description here

接下來,什麼MATLAB的快照給我看:

enter image description here

現在,我有一個很好的理由相信Windows文件查看器是正確的。去same link as previous。向下滾動至img0008。將鼠標懸停在最左邊的img0008。將出現Expert B的縮略圖視圖,與Windows顯示的視圖相同。

有誰知道如何讓MATLAB讀取並正確顯示tiff16圖片?

+0

該文件可能包含嵌入的顏色配置文件。 – 2014-12-06 02:25:35

+0

@MarkRansom是的,即使我這樣認爲,因爲同一圖像的所有5個版本看起來都是一樣的(僅在MATLAB中),而他們不是。 – 2014-12-06 02:26:38

回答

3

謝謝@MarkRansom指點我嵌入顏色配置文件的可能性。我相信下面的解決方案是正確的,併產生與Windows File Viewer相同的輸出。

首先閱讀icc-color-profile使用iccread命令。

I_rgb = imread('a0008-WP_CRW_3959.tif'); 
outprof = iccread('sRGB.icm'); 
P = iccread('a0008-WP_CRW_3959.tif'); 

然後將圖像轉換成使用makecformapplycformsRGB簡介:

C = makecform('icc',P,outprof); 
I_cmyk = applycform(I_rgb,C); 
imwrite(I_cmyk,'pep_cmyk.tif','tif') 
info = imfinfo('pep_cmyk.tif'); 
imshow('pep_cmyk.tif'); 

原始圖像保存在磁盤上,新 - pep_cmyk.tif - 看起來與Windows文件瀏覽器完全相同。

+2

不客氣。我很高興你有主動想出來,一旦你有提示。 – 2014-12-06 03:07:39

相關問題