주요 콘텐츠

imread

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

설명

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

예제

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

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

A = imread(___,Name=Value)는 위에 열거된 구문에 나와 있는 입력 인수 조합 외에, 이름-값 인수를 하나 이상 사용하여 형식별 옵션을 지정합니다. 예를 들어 JPEG 이미지의 방향을 자동으로 지정하려면 AutoOrienttrue (R2024b 이후)로 설정합니다.

예제

[A,map] = imread(___)filename의 인덱스 이미지를 A로 읽어오고, 이미지의 관련 컬러맵을 map으로 읽어 들입니다. 이미지 파일의 컬러맵 값은 [0, 1] 범위로 자동으로 다시 스케일링됩니다. 컬러맵이 HEIF 및 HEIC 이미지 파일 형식에 지원되지 않으므로 이 구문은 그러한 파일에는 적용되지 않습니다.

예제

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

예제

예제

모두 축소

샘플 이미지를 읽습니다.

A = imread("ngc6543a.jpg");

imread 함수는 uint8형의 650×600×3 배열을 반환합니다.

이미지를 표시합니다.

image(A)

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

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

[A,map] = imread("corn.tif");
whos A map
  Name        Size              Bytes  Class     Attributes

  A         415x312            129480  uint8               
  map       256x3                6144  double              

인덱스 이미지 Auint8형의 415×312 행렬이고, 컬러맵 mapdouble형의 256×3 행렬입니다. map의 차원은 인덱스 이미지에 최대 256색이 포함되어 있음을 나타냅니다.

이미지를 표시합니다.

imshow(A,map)

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

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

RGB = ind2rgb(A,map);

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

[minVal,maxVal] = bounds(RGB(:))
minVal = 
0.0078
maxVal = 
0.9765

샘플 파일의 세 번째 이미지를 읽고 표시합니다.

[A,map] = imread("corn.tif",3);
imshow(A,map)

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

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

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

  alpha      0x0                 0  double              

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

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

벡터로 구성된 셀형 배열로 PixelRegion 이름-값 인수를 지정해 읽을 영역의 경계를 나타냅니다. 첫 번째 벡터는 읽을 행의 범위를 설명하고, 두 번째 벡터는 읽을 열의 범위를 설명합니다.

[A,map] = imread("corn.tif",PixelRegion={[201 400] [151 250]});

imread 함수는 corn.tif에서 행 201 ~ 400과 열 151 ~ 250의 이미지 데이터를 읽고 200×100 배열 A를 반환합니다.

이미지를 표시합니다.

imshow(A,map)

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

R2024b 이후

일부 이미지 파일에는 Exif(Exchangeable Image File Format) Orientation 태그의 방향 메타데이터가 포함되어 있습니다. imread를 사용하여 이미지 파일을 읽을 때 AutoOrient 이름-값 인수를 true로 지정하여 이 방향 태그에 따라 이미지 데이터의 방향을 자동으로 지정할 수 있습니다.

Exif Orientation 태그에 서로 다른 값을 사용해 동일한 이미지의 8개 버전을 타일 형식 배열로 만듭니다. 파일 clock_n.jpg에는 Exif Orientation 태그의 n 값이 포함되어 있습니다. AutoOrient 이름-값 인수를 지정하지 않을 경우 Exif Orientation 태그 값에 상관없이 이미지가 읽혀집니다.

filenames = "clock_" + string(1:8) + ".jpg";

for i = 1:8
    rawImages{i} = imread(filenames(i));
end

imshow(imtile(rawImages,BorderSize=[25 25],GridSize=[2 4]))

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

이미지 데이터를 작업 공간으로 읽어 들이기 전에 AutoOrient 이름-값 인수를 사용하여 각 이미지를 그에 상응하는 Exif Orientation 태그 값에 따라 변환합니다. 변환된 이미지를 확인합니다.

for i = 1:8
    orientedImages{i} = imread(filenames(i),AutoOrient=true);
end
imshow(imtile(orientedImages,BorderSize=[25 25],GridSize=[2 4]))

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

입력 인수

모두 축소

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

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

위치

형식

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

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

예: "myImage.jpg"

폴더 안의 파일

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

예: "C:\myFolder\myImage.png"

예: "\imgDir\myImage.bmp"

URL(Uniform Resource Locator)

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

예: "http://my_hostname/my_path/my_image.jpg"

원격 위치

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

scheme_name://path_to_file/my_file.ext

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

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

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

예: "s3://my_bucket/my_path/my_image.heif"

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

예: "png"

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

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

참고

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

예: 2

예: 6:10

데이터형: double

이름-값 인수

모두 확장

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

예: imread("myImage.tif",Index=5)는 TIFF 파일의 다섯 번째 이미지를 읽습니다.

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

예: imread("myImage.tif","Index",5)는 TIFF 파일의 다섯 번째 이미지를 읽습니다.

GIF 파일

모두 확장

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

예: 5

예: 1:10

예: "all"

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | char

JPEG 파일

모두 확장

R2024b 이후

이미지의 방향을 자동으로 지정합니다. false 또는 true로 지정됩니다. 이미지 파일의 Exif Orientation 태그에 따라 filename의 데이터를 변환하려면 AutoOrienttrue로 지정하십시오. AutoOrientfalse로 지정하면 imread 함수는 Exif Orientation 태그를 무시합니다.

데이터형: logical

JPEG 2000 파일

모두 확장

읽을 영역의 경계로, {rows,cols} 형식의 셀형 배열로 지정됩니다. rows 값은 읽을 행의 범위를 설명하고, cols 값은 읽을 열의 범위를 설명합니다. rowscols는 모두 1부터 시작하는 인덱스를 포함하는, 요소를 2개 가진 벡터여야 합니다. 예를 들어, PixelRegion={[1 2] [3 4]}는 이미지 데이터의 행 1과 2, 열 3과 4로 경계가 지정된 영역을 읽습니다.

참고

ReductionLevel을 양수 값으로 지정할 경우 해상도를 낮춘 후 이미지 참조에서 PixelRegion을 지정하십시오.

예: {[1 100] [4 500]}

이미지 해상도의 감소량으로, 음이 아닌 정수로 지정됩니다. ReductionLevel을 값 L로 지정할 경우 이미지 해상도는 2L배만큼 감소합니다. 감소 레벨은 imfinfo 함수 출력값의 WaveletDecompositionLevels 필드에 지정되는 분해 레벨의 총 개수에 의해 제한됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

MATLAB 7.9 (R2009b) 이하 릴리스와의 호환성으로, false 또는 true로 지정됩니다. V79Compatibletrue로 지정할 경우, 반환된 회색조 또는 RGB 이미지는 imread의 이전 버전(MATLAB 7.9 (R2009b) 이하 릴리스)과 일치합니다.

데이터형: logical

PNG 파일

모두 확장

배경색으로, "none", 양의 정수, [0, 1] 범위의 숫자 또는 [0, 1] 범위의 숫자로 구성된 요소를 3개 가진 벡터로 지정됩니다. BackgroundColor"none"으로 지정할 경우 imread 함수는 합성을 수행하지 않습니다. 그렇지 않은 경우 imread 함수는 투명 픽셀을 배경색과 혼합합니다.

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

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

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

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

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

  • transparency 출력을 요청하지 않을 경우 다음이 적용됩니다.

    • 파일에 배경색 청크가 포함되어 있으면 해당 청크의 색이 BackgroundColor의 디폴트 값이 됩니다.

    • 파일에 배경색 청크가 포함되어 있지 않으면 다음이 적용됩니다.

      • 입력 이미지가 인덱스 이미지인 경우 BackgroundColor의 디폴트 값은 1입니다.

      • 입력 이미지가 회색조 이미지인 경우 BackgroundColor의 디폴트 값은 0입니다.

      • 입력 이미지가 RGB 이미지인 경우 BackgroundColor의 디폴트 값은 [0 0 0]입니다.

예: 2

예: 0.5

예: [0.2 0.8 0.5]

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | char

TIFF 파일

모두 확장

R2024b 이후

이미지의 방향을 자동으로 지정합니다. false 또는 true로 지정됩니다. 이미지 파일의 Exif Orientation 태그에 따라 filename의 데이터를 변환하려면 AutoOrienttrue로 지정하십시오. AutoOrientfalse로 지정하면 imread 함수는 Exif Orientation 태그를 무시합니다.

참고

AutoOrienttrue로 지정하는 것 외에 PixelRegion 항목을 지정하면 imread 함수는 지정된 영역을 먼저 읽은 다음 파일의 Exif Orientation 태그에 따라 영역을 변환합니다.

데이터형: logical

읽을 이미지로, 양의 정수로 지정됩니다. 예를 들어, Index의 값이 3이면 imread 함수는 파일의 세 번째 이미지를 읽습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

데이터형: struct

읽을 영역의 경계로, {rows,cols} 형식의 셀형 배열로 지정됩니다. rows 값은 읽을 행의 범위를 설명하고, cols 값은 읽을 열의 범위를 설명합니다. rowscols는 모두 1부터 시작하는 인덱스를 포함하는, 요소를 2개 또는 3개 가진 벡터여야 합니다.

  • rows 또는 cols에 대한 [start stop] 형식의 요소를 2개 가진 벡터는 읽을 첫 번째와 마지막 행 또는 열을 지정합니다. 예를 들어, {[1 2] [3 4]}는 이미지 데이터의 행 1과 2, 열 3과 4로 경계가 지정된 영역을 읽습니다.

  • rows 또는 cols에 대한 [start step stop] 형식의 요소를 3개 가진 벡터는 스텝 크기와 함께, 읽을 첫 번째와 마지막 행 또는 열을 지정합니다. 예를 들어, {[1 2 10] [4 3 12]}는 이미지 데이터의 행 1과 10, 열 4와 12로 경계가 지정된 영역을 가로 스텝 크기 2, 세로 스텝 크기 3으로 읽습니다.

예: {[1 100] [4 500]}

예: {[100 5 200] [250 2 500]}

HIEF 및 HEIC 파일

R2025a 이후

모두 확장

이미지의 방향을 자동으로 지정하는 옵션으로, 숫자형 또는 논리형 1 (true) 또는 논리형 0 (false)으로 지정됩니다. 이미지 파일의 Exif Orientation 태그에 따라 filename의 데이터를 변환하려면 AutoOrienttrue로 지정하십시오. AutoOrientfalse로 지정하면 imread 함수는 Exif Orientation 태그를 무시합니다.

데이터형: logical

출력 인수

모두 축소

이미지 데이터로, 배열로 반환됩니다. 이미지 데이터에 m개 행과 n개 열이 있는 경우 다음이 적용됩니다.

  • 파일이 회색조 이미지를 포함하는 경우 A는 이미지의 픽셀 명암을 나타내는 값으로 구성된 m×n 배열입니다.

  • 파일이 인덱스 이미지를 포함하는 경우 Amap의 행을 참조하는 인덱스 값으로 구성된 m×n 배열입니다.

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

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

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

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

투명도 정보로, 행렬로 반환됩니다.

  • PNG 파일의 경우 다음이 적용됩니다.

    • 알파 채널이 있고 BackgroundColor 이름-값 인수를 지정하지 않은 경우 transparency는 알파 채널입니다.

    • 알파 채널이 없거나 BackgroundColor 이름-값 인수를 지정하는 경우 transparency는 비어 있습니다.

  • CUR 파일과 ICO 파일의 경우 transparency는 AND(불투명) 마스크입니다.

세부 정보

모두 축소

  • AutoOrient 이름-값 인수는 JPEG, TIFF (R2024b 이후), HEIF 또는 HEIC (R2025a 이후) 형식의 파일에서만 동작합니다. 다른 형식의 파일에 AutoOrient 인수를 지정하는 경우 인수는 아무런 영향을 미치지 않습니다. 이 동작을 통해 이미지 모음에 있는 일부 파일이 JPEG, TIFF (R2024b 이후), HEIF 또는 HEIC (R2025a 이후) 형식이 아닌 경우에도 AutoOrient 인수를 사용하여 이미지 모음의 방향을 자동으로 지정할 수 있습니다.

  • 다음 표에서는 AutoOrient 이름-값 인수가 true인 경우 imread 함수가 Exif Orientation 태그 값을 사용하여 이미지 데이터를 변환하는 방법을 보여줍니다.

    Orientation 필드 값변환에 대한 설명
    1변환 없음
    2세로 축에 대해 반사
    3180° 회전
    4세로 축에 대해 반사한 다음 180° 회전
    5세로 축에 대해 반사한 다음 시계 반대 방향으로 90° 회전
    6시계 방향으로 90° 회전
    7세로 축에 대해 반사한 다음 시계 방향으로 90° 회전
    8시계 반대 방향으로 90° 회전

    (R2024b 이후)

알고리즘

모두 축소

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

파일의 비트 심도

imread가 반환하는 배열의 클래스

픽셀당 1비트

logical

색 평면당 2 ~ 8비트

uint8

픽셀당 9 ~ 16비트

uint16(BMP, JPEG, PNG, TIFF)

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

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

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

함수

라이브 편집기 작업

도움말 항목