伽玛分布噪声图像

clc,clear,close all
warning off
feature jit off
im = imread('coloredChips.png');
Z1 = imnoise_gamma(size(im,1),size(im,2),1,0.1);
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_gamma(M, N, a,b)
% input:
%       伽马gamma分布,噪声的类型;
%       M,N:输出噪声图像矩阵的大小
%       a,b:各种噪声的分布参数
% output:
%       R: 输出的噪声图像矩阵,数据类型为double型
% 设定默认值
   % 产生伽玛分布噪声
   if nargin <= 3
      a = 2; b = .5;
   end
   c=0.1;
   R = zeros(M, N);     
   for i = 1:M
       for j=1:N
           x= rand;
           if x>c
               R(i,j) = b.^a./(gam(a)) .*(x-c).^(a-1).*exp(-b.*(x-c));
           else
               R(i,j)=0;
           end
       end
   end
end

function T = gam(z)
umax= 10;
T=0;
for i =0:1:umax
    T =T + i^(z-1)*exp(-i);
end
end
其中
   
, 称为 伽玛函数,伽玛函数是 阶乘在实数上的泛化,满足性质
   
伽玛分布期望是
   
,方差是
   
,中数是
 
伽玛分布具有加成性,即如果
   
,那么
 



你可能感兴趣的:(伽玛分布噪声图像)