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)

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

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

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

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

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

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

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

이미지를 표시합니다.

imshow(X,map)

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

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

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

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

입력 인수

모두 축소

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

Parallel Computing Toolbox가 설치되어 있으면 RGB는 gpuArray가 될 수도 있습니다.

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

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

Parallel Computing Toolbox가 설치되어 있으면 map은 gpuArray가 될 수도 있습니다.

데이터형: double

출력 인수

모두 축소

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

Parallel Computing Toolbox가 설치되어 있으면 I는 gpuArray가 될 수도 있습니다.

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

Parallel Computing Toolbox가 설치되어 있으면 newmap은 gpuArray가 될 수도 있습니다.

데이터형: double

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

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

알고리즘

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

0.2989 * R + 0.5870 * G + 0.1140 * B 

위 가중치는 Y 성분을 계산하기 위해 rgb2ntsc (Image Processing Toolbox) 함수가 사용한 가중치입니다.

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® 코드를 생성할 수 있습니다.

참고 항목

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

도움말 항목