負の値を持つノイズの作成
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
RYO ARATA
el 27 de Oct. de 2022
Editada: Atsushi Ueno
el 28 de Oct. de 2022
以下のコードにて信号が0のみの画像(A)に平均0、分散Bのノイズを加えてノイズ画像の作成をしたいのですが、負の値が0になってしまいす。負の値を残すにはどのようにすればよいでしょうか?
imnoise(A,'gaussian',0,B)
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 27 de Oct. de 2022
Editada: Atsushi Ueno
el 28 de Oct. de 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 comentarios
Más respuestas (2)
Atsushi Ueno
el 27 de Oct. de 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 comentarios
Ver también
Categorías
Más información sobre イメージ算術 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!