2011-03-07 3 views
3

Matlab이 좋지 않아서 다음 코드에 대한 도움이 필요했습니다.Matlab에서 이미지 데이터를 이진 파일로 작성

나는 일련의 이미지에서 이미지 데이터를 가지고 있고이 데이터가 파일에 저장되어있는 방법을 보여주는 파일 서명과 함께 바이너리 파일이 저장하고자합니다. 예를 들어

는 I 이미지가 16 개보다 작은 이미지로 구성 될 수 있도록 4 행 4 열을 구성하는 상기되도록 분할되어 화상을 말한다.

data = struct('imageTitleFinal', {}, 'imageDataFinal', {}); 

for rows = 1:numberOfRows 
     for columns = 1:numberOfColumns 
      data(rows,columns).imageTitleFinal = currentTile; 
      data(rows,columns).imageDataFinal = currentStructure(rows,columns).imageData; 
     end 
end 

내가 바이너리 파일에 작은 이미지의 각각에 대해이 이미지 데이터를 작성하고 세트 사이에 구별 할 수 할 수 있도록하려면 다음과 같이 이러한 작은 이미지에 대한 이미지 데이터 구조에 저장됩니다 파일 내의 이미지 데이터 어떤 도움이라도 대단히 감사 할 것입니다.

+0

나는 또한 루프 FID의 =하면 fopen ('image.vfi', 'A') 내에서 다음 코드를 시도 것을 지적하고 싶습니다; fwrite (fid, data (rows, columns) .imageDataFinal, 'integer * 4'); fclose (fid); 그러나 나중에 파일을 읽을 때 이미지 데이터 세트를 구별 할 수있는 방법이나 파일을 읽을 때 파일의 내용을 해석하는 방법을 잘 모르겠습니다. – kushaldsouza

+0

왜 파일로 쓰고 싶습니까? 이진 파일? 나는 두 가지 이유를 생각할 수있다. 1. 물리적 저장 장치의 경우 -로드/저장을 사용할 수있다. 2. 다른 도구와 함께 사용할 경우 -이 도구가 데이터를 예상하는 방법을 찾아내어 그에 따라 작성해야합니다. –

+0

@Ashih 나는이 데이터를 안드로이드 장치에서 사용하려고합니다. 아래에서 제안한 것을 시도 할 것입니다. 감사. – kushaldsouza

답변

1

당신이, 당신은 잠재적으로이 데이터를 자신의 '헤더'를 만들 수있는 어떤 이유로 이진 파일에 기록해야한다면.

각 '작은 이미지'에 대한 메타 데이터의 고정 된 양을 기록,이 데이터는 이미지 데이터를 분석 할 수 있도록 모든 정보를 가져야한다. 간단한 방법은 다음과 같습니다.

- 'title'이 문자 배열 인 것으로 가정합니다. - 데이터 파일이 double 배열 인 것으로 가정합니다. - '|' 그냥 구분 기호입니다.

| 제목에서 문자의 수를 가진 UINT32 | 문자로 기록 귀하의 타이틀 데이터 | 데이터의 복소수를 가진 uint32 | 복식으로 쓰여진 모든 데이터 |

에어 코드 : 당신은 예를 들어,보다 '메타 데이터'를 추가하는 것을 고려 할 수

fopen in append mode 
fwrite(fid, numel(title), 'uint32'); 
fwrite(fid, title,'char'); %assuming ASCII char set 
fwrite(fid, numel(data), 'uint32'); 
fwrite(fid, data, 'double); 

, 데이터의 크기, 당신의 '작은 이미지는'균일 한 크기를 가지고 있지 않습니다.

+0

@ Ashish 그걸 주셔서 감사합니다, 위의 제안대로 그것을 구현하고 잘 작동합니다. – kushaldsouza

관련 문제