負の値を持つノイズの作成
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
RYO ARATA
am 27 Okt. 2022
Bearbeitet: Atsushi Ueno
am 28 Okt. 2022
以下のコードにて信号が0のみの画像(A)に平均0、分散Bのノイズを加えてノイズ画像の作成をしたいのですが、負の値が0になってしまいす。負の値を残すにはどのようにすればよいでしょうか?
imnoise(A,'gaussian',0,B)
0 Kommentare
Akzeptierte Antwort
Atsushi Ueno
am 27 Okt. 2022
Bearbeitet: Atsushi Ueno
am 28 Okt. 2022
>負の値を残すにはどのようにすればよいでしょうか?
⇒ 整数型なら符号有整数型を用います。但しint16型に限られます。
% I — グレースケール イメージ:数値配列
% データ型: single | double | int16 | uint8 | uint16
% メモ:ポアソン ノイズでは、imnoise はデータ型 int16 のイメージをサポートしていません。
A = int16(zeros(100)); % 信号が 0 のみのイメージデータ (符号有整数 int16 型)
m = 0; B = 0.05; % m:平均、B:分散 (大き過ぎると -32768~32767 を超え飽和する)
C = imnoise(A,'gaussian',m,B);
surf(C)
0 Kommentare
Weitere Antworten (2)
Atsushi Ueno
am 27 Okt. 2022
>負の値を残すにはどのようにすればよいでしょうか?
% imnoise では、データ型 double および single のピクセル値が [0, 1] の範囲内にあると想定しています。
% 関数 rescale を使用して、想定される範囲にピクセル値を調整できます。
% イメージが、[0,1] の範囲外の値をもつ double 型または single 型の場合、
% imnoise は、ノイズを追加する前に入力ピクセル値を [0, 1] の範囲にクリッピングします。
A = double(zeros(100)); % 信号が 0 のみのイメージデータ (浮動小数点数 double 型)
m = 0.5; B = 0.05; % m:平均、B:分散 (大き過ぎると 0~1 を超え飽和する)
C = imnoise(A,'gaussian',m,B) - m; % 結果から平均を引いてゼロ中心にする
surf(C)
0 Kommentare
Siehe auch
Kategorien
Mehr zu イメージのフィルター処理 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!