/ / Histogram šumu v obraze v MATLABe - image, matlab, spracovanie obrazu, šum

Histogram šumu v obraze v MATLABe - obraz, matlab, spracovanie obrazu, šum

Mám kód MATLAB, ktorý pridáva nejaký šumimage. Teraz chcem zobraziť histogram hluku. Dokážem vykonať histogram pôvodného obrazu a hlučného obrazu a potom môžem nájsť rozdiel medzi nimi, ale nie som si istý, či je to správne.

Tu je môj kód:

O=im2double(rgb2gray(imread("image2.jpg")));
G=imnoise(O,"salt & pepper",0.1);
%imshow([O G]);
%imhist(O);
imhist(G);

Ako môžem zobraziť len šum, ktorý som pridal do obrázka?

odpovede:

0 pre odpoveď č. 1

Je to možné, ale na to potrebuje trochu trik. Aj preto, že ide o impulzívny šum, je to oveľa jednoduchší problém. Čo musíte urobiť je semienko náhodný generátor ako prvý, potom skorumpujte obraz so zvukom. Po tom, reseed generátor náhodných a zkorumpovať a šedá obraz s rovnakým druhom šumu. Môžete použiť šedý obrázok, pretože impulzívny šum alebo korenie šumu a korenia poškodzuje váš obrázok čiernymi a bielymi pixelmi, takže čo je šedé by nebolo šumu. Potom by ste našli histogram tohto obrázku a potom nastavte frekvenciu sivej hodnoty na hodnotu 0. Čo zostane, bude hluk, ktorý si prajete.

Pomocou náhodného generátora a tým, že generovanie hluku je náhodné, zaručujete, že rovnaká sekvencia hluku sa po nasadení vydá.

Nechajte napríklad obrázok kameramana:

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

Vyzerá to ako:

imshow(O);

tu zadajte popis obrázku

Teraz nechajte nasadiť náhodný generátor, poškodte obraz, znovu vložte náhodný generátor a poškodte šedý obrázok:

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

Pozrite sa, aký je poškodený obrázok a šum na šedej snímke:

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

tu zadajte popis obrázku

tu zadajte popis obrázku

Ak ich porovnáte vedľa seba, uvidíte, že profily šumu sú presne rovnaké medzi oboma obrázkami. Teraz urobte histogram šedého šumného obrazu a potom odstráňte zásobník na 128, 0,5 alebo šedej farbe:

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

Teraz získame:

tu zadajte popis obrázku