multibandread
이진 파일에서 BIF(Band-Interleaved File) 데이터 읽기
구문
X = multibandread(filename,size,precision,offset,interleave,byteorder)
X = multibandread(...,subset1,subset2,subset3)
설명
X = multibandread(filename,size,precision,offset,interleave,byteorder)
는 이진 파일 filename
에서 BSQ(Band-Sequential), BIL(Band-Interleaved-by-Line) 또는 BIP(Band-Interleaved-by-Pixel) 데이터를 읽어 들입니다. filename
입력값은 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 함수는 대역을 아래 그림과 같이 3차원 배열의 세 번째 차원으로 정의합니다.
multibandread
의 파라미터를 사용하여 읽기 작업의 많은 부분을 지정할 수 있습니다(예: 읽을 대역 지정). 자세한 내용은 파라미터 항목을 참조하십시오.
하나의 대역만 읽는 경우 X
는 2차원 배열이며, 그렇지 않은 경우 3차원 배열입니다. 기본적으로 X
는 데이터형이 double
인 배열로 반환됩니다. 데이터를 다른 데이터형에 매핑하려면 precision
파라미터를 사용하십시오.
X = multibandread(...,subset1,subset2,subset3)
은 파일에 있는 데이터의 서브셋을 읽어 들입니다. 행, 열, 대역 차원을 따라 데이터 서브셋을 지정하기 위해 서브셋 설정 파라미터를 세 개까지 사용할 수 있습니다. 자세한 내용은 서브셋 설정 파라미터 항목을 참조하십시오.
참고
BSQ, BIL, BIP 파일 외에 TIFF 파일 형식을 사용하여 다중대역 이미지를 저장할 수 있습니다. 이 경우, imread
함수를 사용하여 데이터를 가져옵니다.
파라미터
다음 표에는 multibandread
에서 허용하는 인수에 대한 설명이 나와 있습니다.
인수 | 설명 |
---|---|
| 읽어 들일 파일의 이름을 포함하는 문자형 벡터 또는 string형 스칼라. |
| 정수로 구성된,
이 값은 데이터를 전부 읽어 들일 경우 데이터의 차원이 됩니다. |
| 읽어 들일 데이터 형식을 지정하는 문자형 벡터 또는 string형 스칼라(예: 참고: |
| 파일에서 첫 번째 데이터 요소의 0부터 시작하는 위치를 지정하는 스칼라. 이 값은 파일의 시작 부분에서 데이터가 시작하는 부분까지의 바이트 수를 나타냅니다. |
| 데이터가 저장되는 형식으로, 다음 값 중 하나로 지정됩니다.
이러한 대역 저장 방법에 대한 자세한 내용은 |
| 데이터가 저장될 바이트 순서(컴퓨터 형식)를 지정하는 문자형 벡터 또는 string형 스칼라로 예를 들면 다음과 같습니다.
지원되는 형식의 전체 목록을 보려면 |
서브셋 설정 파라미터
최대 세 개의 서브셋 설정 파라미터를 지정할 수 있습니다. 각 서브셋 설정 파라미터는 세 개의 요소, {
가 있는 셀형 배열입니다.dim
,method
,index}
파라미터 | 설명 |
---|---|
| 서브셋을 설정할 차원. 다음 값 중 하나로 지정됩니다.
|
| 서브셋 설정 방법. 다음 값 중 하나로 지정됩니다.
서브셋 셀형 배열에서 이 요소를 생략하면 |
|
|
예제
예제 1
데이터 세트의 초기 파라미터를 설정합니다.
rows=3; cols=3; bands=5; filename = tempname;
데이터 세트를 정의합니다.
fid = fopen(filename, 'w', 'ieee-le'); fwrite(fid, 1:rows*cols*bands, 'double'); fclose(fid);
BSQ(Band-Sequential) 형식을 사용하여 데이터의 다른 모든 대역을 읽어 들입니다.
im1 = multibandread(filename, [rows cols bands], ... 'double', 0, 'bsq', 'ieee-le', ... {'Band', 'Range', [1 2 bands]} )
BIP(Band-Interleaved-by-Pixel) 형식을 사용하여 데이터의 첫 번째 두 행과 두 열을 읽어 들입니다.
im2 = multibandread(filename, [rows cols bands], ... 'double', 0, 'bip', 'ieee-le', ... {'Row', 'Range', [1 2]}, ... {'Column', 'Range', [1 2]} )
BIL(Band-Interleaved-by-Line) 형식을 사용하여 데이터를 읽어 들입니다.
im3 = multibandread(filename, [rows cols bands], ... 'double', 0, 'bil', 'ieee-le')
이 예제에서 만든 파일을 삭제합니다.
delete(filename);
예제 2
FITS 파일 tst0012.fits
의 바이트 74880에서 시작하는 int16
형 BIL 데이터를 읽어 들입니다.
im4 = multibandread('tst0012.fits', [31 73 5], ... 'int16', 74880, 'bil', 'ieee-be', ... {'Band', 'Range', [1 3]} ); im5 = double(im4)/max(max(max(im4))); imagesc(im5);
버전 내역
R2006a 이전에 개발됨
참고 항목
fread
| fwrite
| imread
| memmapfile
| multibandwrite