clc,clear,close all
warning off
feature jit off
im = imread('coloredChips.png');
Z0 = imnoise_geometry(im,size(im,1),size(im,2),0.9);
Z1 = im2uint8(Z0); % 类型转换
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_geometry(im,M, N, b)
% input:
% 几何geometry分布,噪声的类型;
% M,N:输出噪声图像矩阵的大小
% a,b:各种噪声的分布参数
% output:
% R: 输出的噪声图像矩阵,数据类型为double型
% 设定默认值
if nargin < 3
b = 0.5;
end
% 产生几何分布噪声
for i = 1:M
for j=1:N
a = double( floor(im(i,j)/30)+1 );
R(i,j) = b .* (1-b).^(a-1);
end
end
end