픽셀의 nRow 회색 음영 이미지로 nCol로 변환하려는 nCol by nRow 매트릭스의 복식이 있습니다. 256 채널로 축소 된 이미지로 잘라내고 싶지 않습니다. 더블 즈 대신 싱글을 쓰면 행복 할거야. Mathworks의 Tiff 클래스 문서를 살펴 봤지만 간단한 예제를 찾을 수 없습니다.두배의 매트릭스를 회색 음영 .tif 이미지로 변환
답변
나는 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
...
고마워요. 사실 제가 비슷한 일을했습니다. 그러나 Windows에서 .tif 파일을 열려고 할 때 파일이 손상되었다는 오류가 발생합니다. 그러나 Matlab에서 이미지를 열 수 있습니다. Windows에서 손상된 파일을 보는 이유는 무엇입니까? – Trojanian
우선, 'RowsPerStrip'속성에 잘못된 값이있어서 생각하고있었습니다. 그러나이 값을 고치는 것은 도움이되지 않았습니다! 문제는 Windows가 두 배로 tiff를 인식 할 수 없다고 생각합니다! 또한 tiff는 항상 3d 매트릭스이기 때문에 2 차원 tiff를 만드는 것이 정확하지 않을 수 있습니다 ... –
매트릭스의 값은 무엇입니까? 단지 2 차원 행렬이 이미 그레이 스케일이기 때문입니다. 컬러 이미지는 많은 차원을 가지고 있습니다. 그냥'imshow (yourmatrix)'시도해주세요 –
이것은 제가 쓴 것이 아닙니다. – Trojanian
그런 다음 몇 가지 예 pls를 보여줍니다. –