泊松分布噪声图像
泊松分布的概率函數為:
泊松分布的參數λ是單位時間(或單位面積)內隨機事件的平均發生率。 泊松分布適合于描述單位時間內隨機事件發生的次數。
clc,clear,close all
warning off
feature jit off
im = imread('coloredChips.png');
Z1 = imnoise_poission(im,size(im,1),size(im,2),0.3);
Z1 = im2uint8(Z1); % 類型轉換
figure('color',[1,1,1]),
im(:,:,1) = im(:,:,1) + Z1; % R
im(:,:,2) = im(:,:,2) + Z1; % G
im(:,:,3) = im(:,:,3) + Z1; % B
subplot(121); imshow(im);title('加泊松分布噪聲圖像')
subplot(122); imhist(Z1); title('加泊松分布噪聲圖像直方圖')
function R = imnoise_poission(im,M, N, lamda) % input: % 泊松poission分布,噪聲的類型; % M,N:輸出噪聲圖像矩陣的大小 % a,b:各種噪聲的分布參數 % output: % R: 輸出的噪聲圖像矩陣,數據類型為double型 % 設定默認值 if nargin < 4lamda = 0.5; end% 產生poission分布噪聲for i = 1:Mfor j=1:Nb=1;c = double( floor(im(i,j)/30)+1 );for k =1:cb=b*k;endR(i,j) = exp(-lamda).*lamda.^(c)./b;endend end
function R = imnoise_poission(im,M, N, lamda) % input: % 泊松poission分布,噪聲的類型; % M,N:輸出噪聲圖像矩陣的大小 % a,b:各種噪聲的分布參數 % output: % R: 輸出的噪聲圖像矩陣,數據類型為double型 % 設定默認值 if nargin < 4lamda = 0.5; end% 產生poission分布噪聲for i = 1:Mfor j=1:Nb=1;c = double( floor(im(i,j)/30)+1 );for k =1:cb=b*k;endR(i,j) = exp(-lamda).*lamda.^(c)./b;endend end
總結