How to convert multiplicative noise into additive white guassian noise ?

6 ビュー (過去 30 日間)
Bhagawan Thote
Bhagawan Thote 2016 年 2 月 10 日
回答済み: Parag 2025 年 3 月 7 日
How to convert multiplicative noise into additive white guassian noise ? using the log transformation. plz give matlab code of it.

回答 (1 件)

Parag
Parag 2025 年 3 月 7 日
Hi, to convert multiplicative noise into additive white Gaussian noise (AWGN) using log transformation, you can follow these steps:
  1. Apply log transformation: Convert the multiplicative noise model Y=XN into an additive model by taking the natural logarithm:
log(Y)=log(X)+log(N)
Since log(N) can be approximated as Gaussian for small variations, it becomes an additive noise model.
2. Apply inverse transformation: To retrieve the original data, use the exponential function.
You can refer the following MATLAB code for the same.
% Generate a clean image (Example: grayscale image with values in [0,1])
X = im2double(imread('cameraman.tif')); % Read and normalize image
% Define multiplicative noise parameters
sigma = 0.2; % Noise standard deviation
N = exp(sigma * randn(size(X))); % Multiplicative noise (log-normal distribution)
% Apply multiplicative noise
Y = X .* N;
% Convert to additive noise model using log transformation
log_Y = log(Y + eps); % eps avoids log(0)
log_X = log(X + eps);
AWGN = log_Y - log_X; % Extract additive Gaussian noise
% Display results
figure;
subplot(1,3,1); imshow(X, []); title('Original Image');
subplot(1,3,2); imshow(Y, []); title('Image with Multiplicative Noise');
subplot(1,3,3); imshow(AWGN, []); title('Extracted Additive Noise');
% If needed, reconstruct the image
reconstructed_X = exp(log_Y - AWGN);
figure; imshow(reconstructed_X, []); title('Reconstructed Image');

カテゴリ

Help Center および File ExchangePropagation and Channel Models についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by