2016-12-01 3 views
-1

이미지에 약간의 노이즈가 추가되는 MATLAB 코드가 있습니다. 이제 잡음의 히스토그램을 보여주고 싶습니다. 원본 이미지와 노이즈가 많은 이미지의 히스토그램을 수행 할 수 있습니다. 그런 다음 이미지의 차이를 찾을 수 있지만 맞는지 확실하지 않습니다. 여기 MATLAB의 이미지 막대 그래프

내 코드입니다 :

나는 이미지에 추가 단지 소음을 보여줄 수있는 방법
O=im2double(rgb2gray(imread('image2.jpg'))); 
G=imnoise(O,'salt & pepper',0.1); 
%imshow([O G]); 
%imhist(O); 
imhist(G); 

?

+1

를 시도? Matlab을 가지고 놀면서 반은 재미 있습니다. 2 개의 이미지 또는 히스토그램을 뺍니까? 2 개의 이미지를 나눕니까? 이미지 반전의 고유 값을 취하는 것은 어떻습니까? 빈 이미지에 노이즈를 적용하는 방법은 무엇입니까? 모든 종류의 바보 같은 일이 시도 될 수 있습니다. – Matt

답변

0

가능하지만 그렇게하려면 약간의 트릭이 필요합니다. 또한 이것은 충동적인 잡음이기 때문에 훨씬 간단한 문제입니다. 당신이해야 할 일은 시드 랜덤 생성기를 먼저 만든 다음 노이즈로 이미지를 손상시킵니다. 그 후 임의의 생성기를 다시 시드하고 동일한 종류의 노이즈로 회색 이미지를 손상시킵니다. 충동적인 또는 소금 후추 노이즈는 흑백 픽셀로 이미지를 손상 시키므로 회색 이미지를 사용하므로 회색이 아닌 것은 노이즈가됩니다. 그런 다음이 이미지의 막대 그래프를 찾은 다음 회색 값 빈도를 0으로 설정합니다. 남은 것은 원하는 잡음입니다.

랜덤 제네레이터를 시드함으로써 노이즈 생성이 무작위이므로 시드 후 동일한 노이즈 시퀀스가 ​​출력되도록 보장합니다.

의 예를 들어 카메라맨 이미지를 보자 :

imshow(O); 
이제

enter image description here

가 랜덤를 다시 시드,의 랜덤 생성기, 손상된 이미지를 씨앗 보자

O = im2double(imread('cameraman.tif')); 

그것은처럼 보인다 회색 이미지가 손상 될 수 있습니다.

rng(123); % Seed random generator 
G = imnoise(O, 'salt & pepper', 0.1); % Corrupt image 
rng(123); % Reseed random generator 
H = imnoise(0.5*size(O), 'salt & pepper', 0.1); % Corrupt gray image 
,

은 이제 회색 이미지에 손상된 이미지와 노이즈의 모습을 보자 :

figure; 
imshow(G); 
figure; 
imshow(H); 

enter image description here

enter image description here

당신이 그들에게 나란히 비교하면, 당신은 볼 수 있습니다 노이즈 프로파일이 두 이미지간에 정확히 동일하다는 것입니다. 이제, 회색 시끄러운 이미지의 히스토그램을 수행 한 후 (128), 0.5 또는 회색의 빈을 제거 :

h = imhist(H); 
h(129) = 0; 
bar(h); 

우리는 지금 얻을 : 당신은 무엇을

enter image description here

관련 문제