ノイズフリーの画像I
があります。私は付加的なガウス雑音(ゼロ平均、および変動v
)n
を画像に追加したいと思います。 modelの出力は次のとおりです。付加ガウス雑音をシミュレートする正しい方法はどれですか?
- MATLABで
imnoise
機能を使用するガウス雑音を作成して、画像に追加し、 - :
Z = I + n
それをシミュレートするために、我々は2つの方法があります。
私は両方の方法を使用しましたが、それぞれ異なる結果が得られました。どちらが正しいのか判断できますか?なぜ彼らは同等ではないのですか?私の知識では、私はimnoise
が正しいと思います。私のシミュレーションで
は、私は
「パーセントノイズ」番号は全体イメージの信号対ガウス雑音の標準偏差のパーセント比を表すようなノイズパーセントの定義を使用します。
I = imread('eight.tif');
[rows cols]=size(I);
I = double(I);
I = I - min(I(:));
I = I/max(I(:));
%% Percentage ratio
noise_per=0.4; %40 percent noise
%% Add noise to image
v = (noise_per*std(I(:)))^2 %// Option #2
%% Add noise by manual way
n=normrnd(0,v,[rows cols]);
I_noise1=I+n;
%% Add noise by imnoise func.
I_noise2 = imnoise(I, 'gaussian', 0, v);
subplot(131);imshow(n,[]);title('Gaussian noise');
subplot(132);imshow(I_noise1,[]);title('Add Gaussian noise #1');
subplot(133);imshow(I_noise2,[]);title('Add Gaussian noise #2');
私はあなたのコードをテストし、行でエラーが発生しました "I_noise1 = I + N;"。マトリクスの次元は一致しなければならないとしている。私は元の "eight.tif"を持っていないので、別のイメージを使用しなければならなかった。 – VMMF
@VMMF:上記のコードはグレースケールイメージと仮定する(画像がRGBなら間違ったサイズが計算される) – Amro