Main Content

rgb2gray

RGB 이미지나 컬러맵을 회색조로 변환하기

설명

예제

I = rgb2gray(RGB)는 트루컬러 이미지 RGB를 회색조 이미지 I로 변환합니다. rgb2gray 함수는 휘도는 유지하고 색상과 채도 정보는 제거하여 RGB 이미지를 회색조로 변환합니다. Parallel Computing Toolbox™가 설치되어 있으면 rgb2gray는 GPU에서 이 변환 작업을 수행할 수 있습니다.

예제

newmap = rgb2gray(map)map과 동일한 회색조 컬러맵을 반환합니다.

예제

모두 축소

RGB 이미지를 읽고 표시한 다음 회색조로 변환합니다.

샘플 파일 peppers.png를 읽고 RGB 이미지를 표시합니다.

RGB = imread('peppers.png');
imshow(RGB)

RGB 이미지를 회색조 이미지로 변환하여 표시합니다.

I = rgb2gray(RGB);
figure
imshow(I)

RGB 컬러맵으로 정의된 인덱스 이미지를 읽습니다. 그런 다음 컬러맵을 회색조로 변환합니다.

RGB 컬러맵으로 정의된 인덱스 이미지인 샘플 파일 corn.tif를 읽습니다.

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

이미지를 표시합니다.

imshow(X,map)

RGB 컬러맵을 회색조 컬러맵으로 변환하고 이미지를 다시 표시합니다.

newmap = rgb2gray(map);
imshow(X,newmap)

입력 인수

모두 축소

트루컬러 이미지로, m×n×3 숫자형 배열로 지정됩니다.

rgb2gray 함수는 데이터형이 double형 또는 single형인 트루컬러 이미지가 [0, 1] 범위의 값을 가질 것으로 기대합니다. 이미지의 값이 [0, 1] 범위를 벗어나면 rescale 함수를 사용하여 값을 예상 범위로 다시 스케일링할 수 있습니다.

Parallel Computing Toolbox가 설치되어 있으면 RGBgpuArray 객체가 될 수도 있습니다.

데이터형: single | double | uint8 | uint16

컬러맵으로, [0, 1] 범위의 값으로 구성된 c×3 숫자형 행렬로 지정됩니다. map의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다.

Parallel Computing Toolbox가 설치되어 있으면 mapgpuArray 객체가 될 수도 있습니다.

데이터형: double

출력 인수

모두 축소

회색조 이미지로, m×n 숫자형 배열로 반환됩니다.

Parallel Computing Toolbox가 설치되어 있으면 IgpuArray 객체가 될 수도 있습니다.

회색조 컬러맵으로, [0, 1] 범위의 값으로 구성된 c×3 숫자형 행렬로 반환됩니다. newmap의 세 열이 동일하기 때문에 map의 각 행은 하나의 농도값을 지정하게 됩니다.

Parallel Computing Toolbox가 설치되어 있으면 newmapgpuArray 객체가 될 수도 있습니다.

데이터형: double

  • 입력 이미지가 회색조 이미지인 경우 rgb2gray 함수는 오류를 반환합니다. 오류를 방지하려면 im2gray 함수를 대신 사용하면 됩니다. im2gray 함수는 회색조 이미지를 입력값으로 받을 수 있고 그 이미지를 수정하지 않고 반환하는 점을 제외하고 rgb2gray와 동일합니다. im2gray 함수를 사용한다면 다음 조건문과 같은 코드는 더 이상 필요하지 않습니다.

    if ndims(I) == 3
        I = rgb2gray(I);
    end

알고리즘

rgb2gray는 R, G, B 성분에 가중치를 적용하여 합을 만들어내는 방식으로 RGB 값을 회색조 값으로 변환합니다.

0.298936021293775 * R + 0.587043074451121 * G + 114020904255103 * B 

rgb2gray에서 회색조 값을 계산하는 데 사용되는 계수는 소수점 이하 세 자리수로 반올림하면 Rec.ITU-R BT.601-7에서 휘도(E'y)를 계산하는 데 사용되는 값과 같습니다. Rec.ITU-R BT.601-7은 다음 식을 사용하여 E'y를 계산합니다.

0.299 * R + 0.587 * G + 0.114 * B

확장 기능

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | (Image Processing Toolbox) | (Image Processing Toolbox) | | (Image Processing Toolbox)