2016-08-01 4 views
0

픽셀의 nRow 회색 음영 이미지로 nCol로 변환하려는 nCol by nRow 매트릭스의 복식이 있습니다. 256 채널로 축소 된 이미지로 잘라내고 싶지 않습니다. 더블 즈 대신 싱글을 쓰면 행복 할거야. Mathworks의 Tiff 클래스 문서를 살펴 봤지만 간단한 예제를 찾을 수 없습니다.두배의 매트릭스를 회색 음영 .tif 이미지로 변환

+0

매트릭스의 값은 무엇입니까? 단지 2 차원 행렬이 이미 그레이 스케일이기 때문입니다. 컬러 이미지는 많은 차원을 가지고 있습니다. 그냥'imshow (yourmatrix)'시도해주세요 –

+0

이것은 제가 쓴 것이 아닙니다. – Trojanian

+0

그런 다음 몇 가지 예 pls를 보여줍니다. –

답변

1

나는 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 

이 지금 테스트를 수 있습니다 :

우리가 매트릭스

data = rand(100,200); 

는 티파니로 저장할 수 있습니다이 있다고 할 수 있습니다 :하지만이 시행 착오를 겪고 발견

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 매트릭스이기 때문에 2 차원 tiff를 만드는 것이 정확하지 않을 수 있습니다 ... –

관련 문제