Main Content

imread

그래픽스 파일에서 이미지 읽기

설명

예제

A = imread(filename)은 파일 내용에서 파일 형식을 유추하여, filename으로 지정된 파일에서 이미지를 읽습니다. filename이 여러 이미지가 포함된 파일이면 imread는 파일의 첫 번째 이미지를 읽습니다.

A = imread(filename,fmt)는 추가적으로 fmt로 지정된 표준 파일 확장자로 파일의 형식을 지정합니다. imreadfilename으로 지정된 이름의 파일을 찾을 수 없으면 filename.fmt라는 파일을 찾습니다.

A = imread(___,idx)는 여러 이미지가 포함된 파일에서 하나 또는 여러 개의 지정된 이미지를 읽습니다. 이 구문은 GIF, PGM, PBM, PPM, CUR, ICO, TIF, SVS, HDF4 파일에만 적용됩니다. filename 입력값은 반드시 지정해야 하며, fmt를 선택적으로 지정할 수 있습니다.

예제

A = imread(___,Name,Value)는 위에 열거된 구문에 나와 있는 입력 인수 중 하나 외에, 이름-값 쌍의 인수를 하나 이상 사용하여 형식별 옵션을 지정합니다.

예제

[A,map] = imread(___)filename의 인덱스 이미지를 A로 읽어오고, 관련 컬러맵을 map으로 읽어 들입니다. 이미지 파일의 컬러맵 값은 [0,1] 범위로 자동으로 다시 스케일링됩니다.

예제

[A,map,transparency] = imread(___)는 이미지 투명도를 추가로 반환합니다. 이 구문은 PNG, CUR, ICO 파일에만 적용됩니다. PNG 파일의 경우 transparency는 알파 채널입니다(알파 채널이 있는 경우). CUR 파일과 ICO 파일의 경우에는 AND(불투명) 마스크입니다.

예제

모두 축소

샘플 이미지를 읽습니다.

A = imread('ngc6543a.jpg');

imread는 650×600×3 배열 A를 반환합니다.

이미지를 표시합니다.

image(A)

Figure contains an axes object. The axes object contains an object of type image.

샘플 인덱스 이미지 파일 corn.tif의 첫 번째 이미지를 읽습니다.

[X,cmap] = imread('corn.tif');

인덱스 이미지 Xuint8형의 415×312 배열입니다. 컬러맵 cmapdouble형의 256×3 행렬입니다. 따라서 인덱스 이미지에는 256색이 있습니다. 이미지를 표시합니다.

imshow(X,cmap)

Figure contains an axes object. The axes object contains an object of type image.

인덱스 이미지를 RGB 이미지로 변환합니다. 결과는 double형의 415×312×3 배열입니다.

RGB = ind2rgb(X,cmap);

RGB 이미지의 값이 [0, 1] 범위에 있는지 확인합니다.

disp(['Range of RGB image is [',num2str(min(RGB(:))),', ',num2str(max(RGB(:))),'].'])
Range of RGB image is [0.0078431, 0.97647].

샘플 파일 corn.tif의 세 번째 이미지를 읽습니다.

[X,map] = imread('corn.tif',3);

샘플 이미지 peppers.png의 알파 채널을 반환합니다.

[X,map,alpha] = imread('peppers.png');
whos alpha
  Name       Size            Bytes  Class     Attributes

  alpha      0x0                 0  double              

알파 채널이 존재하지 않으므로 alpha는 비어 있습니다.

샘플 이미지 corn.tif의 지정된 픽셀 영역을 읽습니다.

벡터의 셀형 배열로 'PixelRegion' 파라미터를 지정해 읽을 영역의 경계를 나타냅니다. 첫 번째 벡터는 읽을 행의 범위를 지정하고, 두 번째 벡터는 읽을 열의 범위를 지정합니다.

A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});

imreadcorn.tif에서 행 1 ~ 2와 열 2 ~ 5의 이미지 데이터를 읽고 2×4 배열 A를 반환합니다.

입력 인수

모두 축소

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

파일의 위치에 따라 filename은 다음 형식 중 하나가 될 수 있습니다.

위치

형식

현재 폴더 또는 MATLAB® 경로의 폴더

filename에 파일의 이름을 지정합니다.

예: 'myImage.jpg'

폴더 안의 파일

파일이 현재 폴더나 MATLAB 경로의 폴더에 없는 경우, 전체 경로 또는 상대 경로 이름을 지정합니다.

예: 'C:\myFolder\myImage.ext'

예: '\imgDir\myImage.ext'

URL

파일의 위치가 인터넷 URL인 경우, filename은 프로토콜 유형(예: http://)을 포함해야 합니다.

예: 'http://hostname/path_to_file/my_image.jpg'

원격 위치

파일이 원격 위치에 저장된 경우, filename은 다음 형식과 같이 URL(Uniform Resource Locator)로 지정된 파일의 전체 경로를 포함해야 합니다.

scheme_name://path_to_file/my_file.ext

원격 위치에 따라 scheme_name은 다음 표에 있는 값 중 하나가 될 수 있습니다.

원격 위치scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

예: 's3://bucketname/path_to_file/my_image.jpg'

각 파일 형식에 대해 지원되는 비트 심도(Bit Depth), 압축 방식, 컬러스페이스에 대한 자세한 내용은 알고리즘 항목을 참조하십시오.

데이터형: char | string

이미지 형식으로, 표준 파일 확장자를 나타내는 문자형 벡터 또는 string형 스칼라로 지정됩니다. imformats를 호출하면 지원되는 형식과 해당하는 파일 확장자 목록이 표시됩니다.

예: 'png'

데이터형: char | string

읽을 이미지로, 정수 스칼라 또는 정수 벡터(GIF 파일의 경우)로 지정됩니다. 예를 들어, idx가 3이면 imread는 파일의 세 번째 이미지를 반환합니다. GIF 파일의 경우, idx1:5이면 imread는 처음 5개의 프레임만 반환합니다. idx 인수는 여러 이미지가 포함된 GIF, CUR, ICO, HDF4 파일에 대해서만 지원됩니다.

동일한 GIF 파일에서 여러 개의 프레임을 읽을 때는 idx를 프레임의 벡터로 지정하거나 'Frames','all' 이름-값 쌍의 인수를 사용하십시오. GIF 파일의 구조상, 이러한 구문은 루프에서 imread를 호출하는 것에 비해 더 빠른 성능을 제공합니다.

HDF4 파일의 경우, idx는 읽을 이미지의 참조 번호를 나타냅니다. 참조 번호가 반드시 파일 내의 이미지 순서와 일치하지는 않습니다. imfinfo를 사용하여 이미지 순서와 참조 번호를 일치시킬 수 있습니다.

예: 3

데이터형: double

이름-값 인수

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

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

예: 'Index',5는 TIFF 파일의 다섯 번째 이미지를 읽습니다.

GIF 파일

모두 축소

읽을 프레임으로, 'Frames'와 함께 양의 정수, 정수 벡터, 'all' 중 하나가 쉼표로 구분되어 지정됩니다. 예를 들어, 값 3을 지정하면 imread는 파일의 세 번째 프레임을 읽습니다. 'all'을 지정할 경우 imread는 모든 프레임을 읽은 다음 파일에 표시되는 순서대로 프레임을 반환합니다.

예: 'frames',5

JPEG 2000 파일

모두 축소

읽을 부분 이미지로, 'PixelRegion'과 함께 {rows,cols} 형식의 셀형 배열이 쉼표로 구분되어 지정됩니다. rows 입력값은 읽을 행의 범위를 지정합니다. cols 입력값은 읽을 열의 범위를 지정합니다. rowscols는 모두 1부터 시작하는 인덱스를 포함하는, 요소를 2개 가진 벡터여야 합니다. 예를 들어, 'PixelRegion',{[1 2],[3 4]}는 이미지 데이터의 행 1과 2, 열 3과 4로 경계가 지정된 부분 이미지를 읽습니다. 'ReductionLevel' 값이 0보다 큰 경우 rowscols는 부분 이미지의 좌표입니다.

예: 'PixelRegion',{[1 100],[4 500]}

이미지 해상도 감소로, 'ReductionLevel'과 함께 음이 아닌 정수가 쉼표로 구분되어 지정됩니다. 감소 레벨 L에 대해 이미지 해상도는 2^L배만큼 감소합니다. 감소 레벨은 imfinfo 함수 출력값의 'WaveletDecompositionLevels' 필드에 지정되는 분해 레벨의 총수에 의해 제한됩니다.

예: 'ReductionLevel',5

데이터형: single | double

MATLAB 7.9 (R2009b) 이하 릴리스와의 호환성으로, 'V79Compatible'과 함께 true 또는 false가 쉼표로 구분되어 지정됩니다. true를 지정할 경우, 반환된 회색조 또는 RGB 이미지는 imread의 이전 버전(MATLAB 7.9 (R2009b) 이하 릴리스)과 일치합니다.

예: 'V79Compatible',true

데이터형: logical

PNG 파일

모두 축소

배경색으로, 'none', 정수, 또는 정수 요소를 3개 가진 벡터로 지정됩니다. BackgroundColor'none'이면 imread는 합성을 수행하지 않습니다. 그렇지 않은 경우 imread는 투명 픽셀을 배경색과 혼합합니다.

  • 입력 이미지가 인덱스 이미지인 경우, BackgroundColor의 값은 [1,P] 범위의 정수여야 합니다. 여기서 P는 컬러맵 길이입니다.

  • 입력 이미지가 회색조 이미지인 경우, BackgroundColor의 값은 [0,1] 범위의 정수여야 합니다.

  • 입력 이미지가 RGB인 경우, BackgroundColor의 값은 [0,1] 범위의 값으로 구성되고 요소를 3개 가진 벡터여야 합니다.

BackgroundColor의 디폴트 값은 다음과 같이 transparency 출력 인수가 있는지 여부와 이미지 유형에 따라 달라집니다.

  • transparency 출력 인수를 요청할 경우 BackgroundColor의 디폴트 값은 'none'입니다.

  • transparency 출력 인수를 요청하지 않을 경우 PNG 파일에 배경색 청크가 포함되어 있으면 이 색이 BackgroundColor의 디폴트 값이 됩니다.

  • transparency 출력 인수를 요청하지 않을 경우 파일에 배경색 청크가 포함되어 있지 않으면 BackgroundColor의 디폴트 값은 인덱스 이미지에 대해서는 1, 회색조 이미지에 대해서는 0, 트루컬러(RGB) 이미지에 대해서는 [0 0 0]이 됩니다.

TIFF 파일

모두 축소

읽을 이미지로, 'Index'와 함께 양의 정수가 쉼표로 구분되어 지정됩니다. 예를 들어, Index의 값이 3이면 imread는 파일의 세 번째 이미지를 읽습니다.

데이터형: single | double

이미지에 대한 정보로, 'Info'와 함께 imfinfo 함수가 반환한 구조체형 배열이 쉼표로 구분되어 지정됩니다. Info 이름-값 쌍의 인수를 사용하면 imread가 여러 이미지가 포함된 TIFF 파일에서 이미지를 더 빨리 찾을 수 있습니다.

데이터형: struct

영역 경계로, 'PixelRegion'과 함께 {rows,cols} 형식의 셀형 배열이 쉼표로 구분되어 지정됩니다. rows 입력값은 읽을 행의 범위를 지정합니다. cols 입력값은 읽을 열의 범위를 지정합니다. rowscols는 1부터 시작하는 인덱스로 구성된, 요소를 2개 가진 벡터 또는 요소를 3개 가진 벡터여야 합니다. 요소를 2개 가진 벡터는 읽을 첫 번째와 마지막 행, 열을 지정합니다. 예를 들어, 'PixelRegion',{[1 2],[3 4]}는 이미지 데이터의 행 1과 2, 열 3과 4로 경계가 지정된 영역을 읽습니다.

요소를 3개 가진 벡터는 [start increment stop] 형식이어야 합니다. 여기서 start는 읽을 첫 번째 행 또는 열이고, increment는 증분 값이며, stop은 읽을 마지막 행 또는 열입니다. 이 구문은 이미지 다운샘플링을 허용합니다. 예를 들어, 'PixelRegion',{[1 2 10],[4 3 12]}는 행 1과 10, 열 4와 12로 경계가 지정된 영역을 읽은 다음, 세로 방향으로 2픽셀마다 그리고 가로 방향으로 3픽셀마다 데이터를 샘플링합니다.

예: 'PixelRegion',{[1 100],[4 500]}

데이터형: cell

출력 인수

모두 축소

이미지 데이터로, 배열로 반환됩니다.

  • 파일이 회색조 이미지를 포함하는 경우 A는 m×n 배열입니다.

  • 파일이 인덱스 이미지를 포함하는 경우 A는, 인덱스 이미지 색을 map에 대한 인덱스 값으로 나타내는 m×n 배열입니다.

  • 파일이 트루컬러 이미지를 포함하는 경우 A는 m×n×3 배열입니다.

  • 파일이 CMYK 컬러스페이스를 사용하는 컬러 이미지를 포함한 TIFF 파일인 경우 A는 m×n×4 배열입니다.

A의 클래스는 이미지 형식과 이미지 데이터의 비트 심도(Bit Depth)에 따라 달라집니다. 자세한 내용은 알고리즘 항목을 참조하십시오.

A의 인덱스 이미지 데이터에 대한 컬러맵으로, double형 클래스의 m×3 행렬로 반환됩니다.

투명도 정보로, 행렬로 반환됩니다. PNG 파일의 경우 transparency는 알파 채널입니다(있는 경우). 알파 채널이 없거나 'BackgroundColor' 이름-값 쌍의 인수를 지정하는 경우 transparency는 비어 있습니다. CUR 파일과 ICO 파일의 경우 transparency는 AND 마스크입니다. 커서 파일의 경우, 이 마스크에는 때때로 유일하게 유용한 데이터가 포함됩니다.

세부 정보

모두 축소

비트 심도(Bit Depth)

비트 심도(Bit Depth)는 각 이미지 픽셀을 표시하는 데 사용되는 비트 수입니다.

비트 심도(Bit Depth)는 샘플당 비트 수와 픽셀당 샘플을 곱하여 계산됩니다. 따라서, 각 색 성분(또는 샘플)당 8비트를 사용하고 픽셀당 세 개의 샘플을 사용하는 형식의 비트 심도는 24입니다. 때로는 비트 심도에 대한 샘플의 크기가 모호한 경우도 있습니다. 예를 들어, 48비트 비트 심도가 과연 8비트 샘플 6개, 12비트 샘플 4개 또는 16비트 샘플 3개 중 무엇인지 어떻게 알 수 있을까요? 이러한 모호성을 피할 수 있도록 샘플 크기에 대한 정보는 알고리즘 항목을 참조하십시오.

알고리즘

모두 축소

대부분의 이미지 파일 형식의 경우, imread는 이미지 픽셀을 저장하는데 색 평면당 8비트 이하를 사용합니다. 다음 표에는 파일 형식에서 사용되는 비트 심도(Bit Depth)별로 반환되는 이미지 배열 A의 클래스가 나와 있습니다.

파일의 비트 심도

imread가 반환한 배열의 클래스

픽셀당 1비트

logical

색 평면당 2 ~ 8비트

uint8

픽셀당 9 ~ 16비트

uint16 (BMP, JPEG, PNGTIFF)

16비트 BMP 압축 형식(5-6-5)의 경우, MATLAB은 uint8형을 반환합니다.

다음 섹션에서는 특정 형식에 대한 지원 정보가 형식 이름의 사전순으로 나와 있습니다.

BMP — Windows 비트맵

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도무압축RLE 압축출력값 클래스참고
1비트logical 
4비트uint8 
8비트uint8 
16비트uint81개 샘플/픽셀
24비트uint83개 샘플/픽셀
32비트uint83개 샘플/픽셀
(1바이트 채움)

CUR — 커서 파일

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도무압축압축출력값 클래스
1비트logical
4비트uint8
8비트uint8

참고

기본적으로 Microsoft® Windows® 커서는 32×32 픽셀입니다. MATLAB 포인터는 16×16 픽셀이어야 하므로 이미지를 스케일링해야 할 수 있습니다. 이 연산에는 imresize 함수를 사용할 수 있습니다.

GIF — Graphics Interchange Format

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도무압축압축출력값 클래스
1비트logical
2 ~ 8비트uint8

HDF4 — Hierarchical Data Format

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도컬러맵이 있는 래스터 이미지컬러맵이 없는 래스터 이미지출력값 클래스참고
8비트uint8 
24비트uint83개 샘플/픽셀

ICO — Icon File

CUR — 커서 파일 항목을 참조하십시오.

JPEG — Joint Photographic Experts Group

imread는 모든 기본 JPEG 이미지뿐만 아니라 일부 일반적으로 사용되는 확장자를 갖는 JPEG 이미지를 읽습니다. JPEG 2000 파일 지원에 대한 자세한 내용은 JPEG 2000을 참조하십시오.

샘플당 지원되는 비트 수손실 압축무손실 압축출력값 클래스참고
8비트uint8회색조 또는 RGB
12비트uint16회색조 또는 RGB
16비트uint16회색조

JPEG 2000 (Joint Photographic Experts Group 2000)

JPEG 파일에 대한 자세한 내용은 JPEG 항목을 참조하십시오.

참고

인덱스 JPEG 2000 이미지는 지원하지 않습니다. JP2/JPX 파일인 경우 JP2 호환 컬러스페이스만 지원됩니다. 기본적으로 모든 이미지 채널은 파일에 저장된 순서로 반환됩니다.

샘플당 지원되는 비트 수

손실 압축무손실 압축출력값 클래스참고
1비트logical회색조만
2 ~ 8비트uint8 또는 int8회색조
또는 RGB
9 ~ 16비트uint16 또는 int16회색조
또는 RGB

PBM — Portable Bitmap

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도원시 이진ASCII(일반) 인코딩출력값 클래스
1비트logical

PCX — Windows 그림판

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도출력값 클래스참고
1비트logical회색조만
8비트uint8회색조 또는 인덱스
24비트uint8RGB
픽셀당 8비트 샘플 3개

PGM — Portable Graymap

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도원시 이진ASCII(일반) 인코딩출력값 클래스참고
8비트uint8 
16비트uint16 
임의1 ~ 8비트: uint8
9 ~ 16비트: uint16
값이 스케일링됩니다

PNG — Portable Network Graphics

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도출력값 클래스참고
1비트logical회색조
2비트uint8회색조
4비트uint8회색조
8비트uint8회색조 또는 인덱스
16비트uint16회색조 또는 인덱스
24비트uint8RGB
픽셀당 8비트 샘플 3개
48비트uint16RGB
픽셀당 16비트 샘플 3개

PPM — Portable Pixmap

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도원시 이진ASCII(일반) 인코딩출력값 클래스
최대 16비트uint8
임의 

RAS — Sun Raster

다음 표에는 지원되는 비트 심도(Bit Depth)와 출력 이미지 데이터 배열의 데이터형이 나와 있습니다.

지원되는 비트 심도출력값 클래스참고
1비트logical비트맵
8비트uint8인덱스
24비트uint8RGB
픽셀당 8비트 샘플 3개
32비트uint8알파값을 가지는 RGB
픽셀당 8비트 샘플 4개

Aperio SVS — Aperio ScanScope 가상 슬라이드

TIFF 기반 이미지 파일 형식입니다. imread는 JPEG2000 압축이 적용된 이미지를 포함하여 압축된 이미지와 압축되지 않은 이미지의 읽기를 지원합니다. 자세한 내용은 TIFF — Tagged Image File Format 항목을 참조하십시오.

TIFF — Tagged Image File Format

imread는 TIFF 사양 또는 LibTIFF에서 지원하는 대부분의 이미지를 읽습니다. imread 함수는 다음과 같은 TIFF 기능을 지원합니다.

  • 픽셀당 임의의 샘플 수

  • CCITT 그룹 3 및 4 FAX, Packbits, JPEG, LZW, Deflate, ThunderScan 압축 및 무압축 이미지

  • 논리형, 회색조, 인덱스 색상, 트루컬러 및 초분광 이미지

  • RGB, CMYK, CIELAB, ICCLAB 컬러스페이스입니다. 컬러 이미지가 CMYK 컬러스페이스를 사용하는 경우 Am×n×4 배열입니다. 어떤 컬러스페이스가 사용되었는지 확인하려면, imfinfo를 사용하여 그래픽스 파일에 대한 정보를 얻고 PhotometricInterpretation 필드의 값을 살펴보십시오. 파일에 CIELAB 색 데이터가 포함된 경우, imread는 이 색 데이터를 MATLAB 작업 공간으로 가져오기 전에 ICCLAB으로 변환합니다. TIFF CIELAB으로 인코딩된 8비트 또는 16비트 값이 단일 MATLAB 배열로는 표현될 수 없는 부호 있는 데이터형과 부호 없는 데이터형의 조합을 사용하기 때문에 이 변환이 필요합니다.

  • 타일 또는 주사선으로 구성된 데이터

imread는 다음과 같이 TIFF 이미지를 읽고 변환합니다.

  • YCbCr 이미지는 RGB 컬러스페이스로 변환됩니다.

  • 모든 회색조 이미지는 검은색 = 0, 흰색 = 최댓값으로 간주하여 읽혀집니다.

  • 1비트 이미지는 logical 클래스로 반환됩니다.

  • 16비트 부동소수점 이미지는 single 클래스로 반환됩니다.

  • CIELab 이미지는 ICCLab 컬러스페이스로 변환됩니다.

XWD — X Window Dump

다음 표에는 XWD 파일에 대해 지원되는 비트 심도(Bit Depth), 압축 및 출력값 클래스가 나와 있습니다.

지원되는 비트 심도ZPixmapsXYBitmapsXYPixmaps출력값 클래스
1비트logical
8비트uint8

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

함수

라이브 편집기 작업

도움말 항목