What is the actual ratio of color channels used in function rgb2gray?
조회 수: 3 (최근 30일)
이전 댓글 표시
I was curious to know the actual ratio of color channels used in rgb2gray function. The documentation mentioned about the ratio used in the function i.e.
(0.298936021293775 * R + 0.587043074451121 * G + 0.114020904255103 * B)
(0.299 * R + 0.587 * G + 0.114 * B)
To confirm it I wrote a script. Two gray image histogram are compared where one gray image is generated using inbuilt rgb2gray function and other gray image is generated using the mentioned ratio of color channels.
path = "OG/550_img_.png";
img = imread(path);
gray1 = rgb2gray(img);
gray2 = 0.298936021293775 * img(:,:,1) ...
+ 0.587043074451121 * img(:,:,2) ...
+ 0.114020904255103 * img(:,:,3) ;
plot(imhist(gray1),color='r');
hold on;
plot(imhist(gray2),Color='b');

As you can can see from the figure the histogram is not matching. So what is the actual ratio used by rgb2gray function?
댓글 수: 0
채택된 답변
Constantino Carlos Reyes-Aldasoro
2025년 4월 23일
이동: Cris LaPierre
2025년 4월 23일
This is interesting, it looks like rgb2gray is rounding or filtering in some way.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!