Filter löschen
Filter löschen

Please Help I am trying to get my add noise to my color image and then filter it out. Filtered channels don't retain the original picture.

1 Ansicht (letzte 30 Tage)
function [Noise]=corrupt_it(MyImage);
MyImage = 'MainProjImage.tif'; % my image
I = imread(MyImage);%read the Image
mean_gauss = 0; %gaussian noise
var_gauss = 1000; %gaussian noise variance
J = imnoise(I,'gaussian',mean_gauss,var_gauss); % make some noise
Red=J;
Blue=J;
Green=J;
% only red channel
Red(:,:,2:3)=0;
%only blue channel
Blue(:,:,1)=0;
Blue(:,:,3)=0;
%only Green channel
Green(:,:,1:2)=0;
figure('name', 'Noise Corruption/Histogram');
subplot(4,3,1);imshow(Red); title('Red Gaussian Noise');%display noisy image.
subplot(4,3,2);imshow(Blue); title('Green Gaussian Noise');%display noisy image.
subplot(4,3,3);imshow(Green); title('Blue Gaussian Noise');%display noisy image.
%%Histogram
[yRed, x] = imhist(Red);
[yGreen, x] = imhist(Blue);
[yBlue, x] = imhist(Green);
subplot(4,3,4);plot(x, yRed, 'Red');axis([0 256 0 350]);title('Red Histogram');
subplot(4,3,5);plot(x, yGreen, 'Green');axis([0 256 0 350]);title('Green Histogram');
subplot(4,3,6);plot(x, yBlue, 'Blue');axis([0 256 0 350]);title('Blue Histogram');
%task 1C
B1 = imgaussfilt(Red,31.6227);
B2 = imgaussfilt(Blue,31.6227);
B3 = imgaussfilt(Green,31.6227);
subplot(4,3,7);imshow(B1); title('Filter Red Noise');
subplot(4,3,8);imshow(B2); title('Filter Green Noise');
subplot(4,3,9);imshow(B3); title('Filter Blue Noise');
red=B1(:,:,1);
blue=B2(:,:,2);
green=B3(:,:,3);
noisyImage(:,:,1)=red;
noisyImage(:,:,2)=green;
noisyImage(:,:,3)=blue;
noisyImage=uint8(noisyImage);
red1=noisyImage(:,:,1);
blue1=noisyImage(:,:,2);
green1=noisyImage(:,:,3);
FilterImage(:,:,1)=red1;
FilterImage(:,:,2)=blue1;
FilterImage(:,:,3)=green1;
FilterImage=uint8(FilterImage);
subplot(4,3,10);
imshow(FilterImage);
title('Filtered Image');
subplot(4,3,11);
imshow(I);
title('Original');
end

Antworten (1)

KALYAN ACHARJYA
KALYAN ACHARJYA am 25 Apr. 2019
Bearbeitet: KALYAN ACHARJYA am 25 Apr. 2019
Change this one, beacuse Red. Green ..are not in grayscale, see in worksspace or whos Red
[yRed,x]=imhist(rgb2gray(Red));
[yGreen,x]=imhist(rgb2gray(Blue));
[yBlue, x]=imhist(rgb2gray(Green));
  1 Kommentar
Jonathan Harris
Jonathan Harris am 25 Apr. 2019
Sorry but it didn't work the third row should be the individual channels of the picture. The filtered image should look just like the original. The change didnt do anything to the figure. Thank you for trying though.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by