Algorithm for converting RGB image to Grayscale in detail
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Simple steps to convert RGB image to Grayscale
0 Commenti
Risposte (2)
Walter Roberson
il 25 Ago 2012
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 Commenti
Image Analyst
il 25 Ago 2012
Modificato: Image Analyst
il 25 Ago 2012
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 Commenti
Rawan hamdi
il 23 Feb 2014
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
il 23 Feb 2014
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);
Vedere anche
Categorie
Scopri di più su Import, Export, and Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!