I converted a color image to gray using rgb2gray and denoised the image. Now i wanted to convert the denoised gray image to a color image... Is it possible.... Please can someone help me.... Please do reply....

 Accepted Answer

Image Analyst
Image Analyst on 27 Aug 2013

1 vote

You can use ind2rgb() but you have to supply a colormap. It won't look like the original colors though - you lost those when you went to gray. Why don't you just denoise each channel one at a time? Or convert to hsv and denoise just the v channel. Either of those methods will not lose the color information like your method does.

3 Comments

MATLAB has a rgb2ycbcr function and ycbcr2rgb function - try that. ALso, why are your arrays 4D arrays? Inside the custom-written functinos they're 3D arrays but I don't even know why they're that. Why aren't they 2D arrays like normal?
i have this code that filters image,but when i use it with a colored image it turns grayscale. could you help me?
I = imread('phonebox2_noisy.bmp');
Im = rgb2gray(I);
noisy = imnoise(Im, 'salt & pepper',0.1);
[m,n] = size(noisy);
output = zeros(m,n);
output = uint8(output);
for i = 1:m
for j = 1:n
xmin = max(1,i-1);
xmax = min(m,i+1);
ymin = max(1,j-1);
ymax = min(n,j+1);
temp = noisy(xmin:xmax, ymin:ymax);
output(i,j) = median(temp(:));
end
end
figure(1);
set(gcf, 'Position', get(0,'ScreenSize'));
subplot(131),imshow(I),title('Original Image');
subplot(133),imshow(output),title('filtered image');
@kailas jobu, after you read this
attach 'phonebox2_noisy.bmp' in your own, new question.
Also attach the "noisy()" function. And you might want to consider medfilt2() instead of median.

Sign in to comment.

More Answers (1)

Donghui  Sun
Donghui Sun on 27 Aug 2013

1 vote

ind2rgb() or ind2rgb8().

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!