filter_addnoise.m
来自「这是采用Matlab编写的车牌识别程序,好不好下了就知」· M 代码 · 共 62 行
M
62 行
function varargout = filter_addnoise(varargin)
if nargin == 0
p1 = struct( ...
'Name', 'Noise type', ...
'Style', 'popup', ...
'DefaultValue', 1, ...
'Items', { {'Gaussian', 'Salt&Pepper', ...
'Speckle'} } );
p2 = struct( ...
'Name', 'Noise strength', ...
'Style', 'single', ...
'DefaultValue', 0.1, ...
'Max', 1, ...
'Min', 0, ...
'LargeStep', 1 / 10, ...
'SmallStep', 1 / 100);
p3 = struct( ...
'Name', 'Monochome noise', ...
'Style', 'check', ...
'DefaultValue', 1);
P = struct( ...
'FilterName', 'Add noise', ...
'AvailableImageType', [0 0 0 1 1], ...
'Class', 'noise', ...
'ParameterNumber', 2, ...
'Parameters', { {p1, p2} });
varargout{1} = P;
else
CX = varargin{1};
FUNPARA = varargin{2};
if isrgb(CX)
switch FUNPARA{1}
case 1
varargout{1} = cat(3, ...
imnoise(CX(:, :, 1), 'gaussian', FUNPARA{2}), ...
imnoise(CX(:, :, 2), 'gaussian', FUNPARA{2}), ...
imnoise(CX(:, :, 3), 'gaussian', FUNPARA{2}) );
case 2
varargout{1} = cat(3, ...
imnoise(CX(:, :, 1), 'salt & pepper', FUNPARA{2}), ...
imnoise(CX(:, :, 2), 'salt & pepper', FUNPARA{2}), ...
imnoise(CX(:, :, 3), 'salt & pepper', FUNPARA{2}) );
case 3
varargout{1} = cat(3, ...
imnoise(CX(:, :, 1), 'speckle', FUNPARA{2}), ...
imnoise(CX(:, :, 2), 'speckle', FUNPARA{2}), ...
imnoise(CX(:, :, 3), 'speckle', FUNPARA{2}) );
end
else
switch FUNPARA{1}
case 1
varargout{1} = imnoise(CX, 'gaussian', FUNPARA{2});
case 2
varargout{1} = imnoise(CX, 'salt & pepper', FUNPARA{2});
case 3
varargout{1} = imnoise(CX, 'speckle', FUNPARA{2});
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?