Main Content

fitswrite

이미지를 FITS 파일에 쓰기

설명

예제

fitswrite(imagedata,filename)filename으로 지정된 FITS(Flexible Image Transport System) 파일에 지정된 이미지 데이터를 씁니다. 파일이 이미 존재하는 경우 fitswrite는 파일을 덮어씁니다.

예제

fitswrite(imagedata,filename,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 추가 옵션을 통해 파일을 만듭니다. 예를 들어, 'Compression','rice'는 Rice 압축 알고리즘을 지정합니다.

예제

모두 축소

RGB 이미지의 빨간색 채널을 포함하는 FITS 파일을 만듭니다. 빨간색 채널은 최종 이미지에서 회색조로 표현됩니다.

샘플 이미지를 읽고 빨간색 채널을 분리합니다.

X = imread('ngc6543a.jpg');
R = X(:,:,1);

FITS 파일에 빨간색 채널 데이터를 씁니다.

fitswrite(R,'myfile.fits');

FITS 메타데이터를 표시합니다.

fitsdisp('myfile.fits');
HDU:  1 (Primary HDU)
	SIMPLE  =                    T / file does conform to FITS standard
	BITPIX  =                    8 / number of bits per data pixel
	NAXIS   =                    2 / number of data axes
	NAXIS1  =                  600 / length of data axis 1
	NAXIS2  =                  650 / length of data axis 2
	EXTEND  =                    T / FITS dataset may contain extensions
	COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
	COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H

RGB 이미지 채널에서 구성한 3개의 이미지를 가진 압축된 FITS 파일을 만듭니다. 먼저 하나의 채널을 가진 파일을 만든 다음 다른 두 개의 채널을 가진 파일을 추가합니다.

샘플 이미지를 읽고 빨간색, 녹색, 파란색 채널을 분리합니다.

X = imread('ngc6543a.jpg');
R = X(:,:,1);
G = X(:,:,2);
B = X(:,:,3);

Rice 압축을 사용하여 빨간색 채널 데이터를 FITS 파일에 씁니다.

fitswrite(R,'myfile.fits','Compression','rice');

Rice 압축을 사용하여 녹색과 파란색 채널 데이터를 FITS 파일에 추가합니다.

fitswrite(G,'myfile.fits','WriteMode','append','Compression','rice');
fitswrite(B,'myfile.fits','WriteMode','append','Compression','rice');

FITS 파일을 표시합니다.

fitsdisp('myfile.fits');
HDU:  1 (Primary HDU)
	SIMPLE  =                    T / file does conform to FITS standard
	BITPIX  =                   16 / number of bits per data pixel
	NAXIS   =                    0 / number of data axes
	EXTEND  =                    T / FITS dataset may contain extensions
	COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
	COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H

HDU:  2 
	XTENSION= 'BINTABLE'           / binary table extension
	BITPIX  =                    8 / 8-bit bytes
	NAXIS   =                    2 / 2-dimensional binary table
	NAXIS1  =                    8 / width of table in bytes
	NAXIS2  =                  650 / number of rows in table
	PCOUNT  =               101902 / size of special data area
	GCOUNT  =                    1 / one data group (required keyword)
	TFIELDS =                    1 / number of fields in each row
	TTYPE1  = 'COMPRESSED_DATA'    / label for field   1
	TFORM1  = '1PB(470)'           / data format of field: variable length array

HDU:  3 
	XTENSION= 'BINTABLE'           / binary table extension
	BITPIX  =                    8 / 8-bit bytes
	NAXIS   =                    2 / 2-dimensional binary table
	NAXIS1  =                    8 / width of table in bytes
	NAXIS2  =                  650 / number of rows in table
	PCOUNT  =                95976 / size of special data area
	GCOUNT  =                    1 / one data group (required keyword)
	TFIELDS =                    1 / number of fields in each row
	TTYPE1  = 'COMPRESSED_DATA'    / label for field   1
	TFORM1  = '1PB(470)'           / data format of field: variable length array

HDU:  4 
	XTENSION= 'BINTABLE'           / binary table extension
	BITPIX  =                    8 / 8-bit bytes
	NAXIS   =                    2 / 2-dimensional binary table
	NAXIS1  =                    8 / width of table in bytes
	NAXIS2  =                  650 / number of rows in table
	PCOUNT  =                96255 / size of special data area
	GCOUNT  =                    1 / one data group (required keyword)
	TFIELDS =                    1 / number of fields in each row
	TTYPE1  = 'COMPRESSED_DATA'    / label for field   1
	TFORM1  = '1PB(470)'           / data format of field: variable length array

입력 인수

모두 축소

입력 이미지 데이터로, 1차원 배열 또는 다차원 배열로 지정됩니다.

파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: fitswrite(R,'myfile.fits','WriteMode','append')

쓰기 모드로, 문자형 벡터나 string형 스칼라로 지정됩니다. 지정한 파일이 이미 존재하는 경우, 쓰기 모드가 fitswrite의 동작을 결정합니다.

쓰기 모드

설명

'overwrite'

기존 파일을 덮어씁니다. 이는 디폴트 동작입니다.

'append'

기존 파일에 이미지 데이터를 추가합니다.

해당 파일이 없으면 fitswrite는 쓰기 모드에 관계없이 새 파일을 만듭니다.

FITS 이미지를 쓸 때 사용되는 압축 알고리즘으로, 다음 값 중 하나로 지정됩니다.

설명

'none'

무압축 이는 디폴트 동작입니다.

'gzip'

이미지 데이터를 GNU Zip 파일로 압축합니다.

'rice'

Rice 알고리즘을 사용하여 이미지 데이터를 압축합니다.

'hcompress'

HCOMPRESS 알고리즘을 사용하여 이미지 데이터를 압축합니다.

'plio'PLIO 알고리즘을 사용하여 이미지 데이터를 압축합니다.

  • MATLAB®은 원시 FITS 이미지 데이터를 주어진 순서대로 쓰지만, FITS 이미지 데이터를 읽고 쓰는 일부 소프트웨어 패키지는 이미지의 맨 아래 행부터 이미지 데이터가 저장된다고 가정합니다. 따라서 MATLAB에서 작성된 FITS 이미지 데이터는 다른 소프트웨어 패키지를 사용하여 표시했을 때와 위아래 방향(즉, 가로 축 기준)이 뒤집혀 보일 수 있습니다. MATLAB에서 이미지를 뒤집으려면, fitswrite 함수로 이미지를 쓰기 전에 이미지 데이터에 flipud 함수를 사용할 수 있습니다.

버전 내역

R2012a에 개발됨