Algorithm for converting RGB image to Grayscale in detail
조회 수: 2 (최근 30일)
이전 댓글 표시
Simple steps to convert RGB image to Grayscale
댓글 수: 0
답변 (2개)
Walter Roberson
2012년 8월 25일
Note: the formula in that Wikipedia section is for the sRGB color space. rgb2gray() uses a different formula, based upon the assumption that the values are in a linear colorspace instead of in sRGB.
댓글 수: 0
Image Analyst
2012년 8월 25일
편집: Image Analyst
2012년 8월 25일
One way:
grayImage = rgb2gray(rgbImage);
Another way is to take one color channel:
grayImage = rgbImage(:, :, 2); % Take green channel.
Some useful formulas are here:
댓글 수: 2
Rawan hamdi
2014년 2월 23일
This is my code and i get an error which says Index exceeds matrix dimensions.
Error in ==> graysc at 14 gray(i,j) = 0.29 * rgb(:,:,1) + 0.59 * rgb(:,:,2) + 0.11 * rgb(:,:,3);
%%code
function [gray] = graysc(input)
rgb = double(imread(input));
[h,w,k] = size(rgb);
gray = zeros(h,w,k);
for i = 1 : h
for j =1 : w
% Assume you have an RGB image of class double, or create a random one
gray(i,j) = 0.29 * rgb(:,:,1) + 0.59 * rgb(:,:,2) + 0.11 * rgb(:,:,3);
end
end
imshow(gray);
end
Image Analyst
2014년 2월 23일
What is the value of k? It should be 3. Then, don't use k when you allocate space for gray with zeros(). Just do
gray = zeros(h, w);
참고 항목
카테고리
Help Center 및 File Exchange에서 Import, Export, and Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!