2016-08-01 129 views
0

我有一個由雙精度nRow矩陣構成的nCol,我想通過像素的nRow灰度圖像轉換爲nCol。我不想將這個縮減到一個縮放到256個通道的圖像。我會很高興使用單打而不是雙打。我已經瀏覽了Mathworks的Tiff類文檔,但找不到一個簡單的例子。將雙精度矩陣轉換爲灰度.tif圖像

+0

矩陣的值是多少?因爲二維矩陣已經是灰度。彩色圖像有很多尺寸。 只要試試'imshow(yourmatrix)' –

+0

這不是我所追求的。 – Trojanian

+0

然後顯示一些例子。 –

回答

1

我試着閱讀關於Tiff類,並且它是非常差的記錄。但我發現這個經歷試錯:

可以說,我們有矩陣

data = rand(100,200); 

讓我們將它保存爲TIFF:

t = Tiff('new.tif','w')         %create object of Tiff class 
setTag(t,Tiff.TagID.ImageLength,size(data,1))    %define image dimentions 
setTag(t,Tiff.TagID.ImageWidth,size(data,2)) 

setTag(t,'Photometric', Tiff.Photometric.MinIsBlack)  %define the color type of image 

%specifies how image data components are stored on disk 
setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky); 

setTag(t,'BitsPerSample',64);        %because 1 double = 8byte = 64bits 

%Specify how to interpret each pixel sample (IEEEFP works with input doubles) 
setTag(t,'SampleFormat',Tiff.SampleFormat.IEEEFP);   
t.write(data) 
t.close 

讓測試這個現在:

datac = imread('new.tif') 
whos datac 
Name   Size    Bytes Class  Attributes 
datac  100x200   160000 double 

和:

datac(:,1) 

ans = 

0.4921 
0.6908 
0.1544 
0.4433 
... 
+0

感謝您 - 實際上我做了類似的事情,但是當試圖在Windows中打開'.tif'時,我收到一個錯誤,指出文件已損壞。但是,我可以在Matlab中打開圖像。任何想法爲什麼Windows看到一個損壞的文件? – Trojanian

+0

首先,我在考慮'RowsPerStrip'屬性,因爲它的值不正確。但修復這個值並沒有幫助! 我認爲問題在於Windows無法識別tiff與雙打!另外,由於TIFF總是3D矩陣,所以創建2D TIFF可能是不正確的... –