MATLAB----Roberts锐化滤波器

MATLAB----Roberts锐化滤波器_第1张图片

% Roberts锐化滤波器
clc,clear,close all % 清理命令区、清理工作区、关闭显示图形
warning off % 消除警告
feature jit off % 加速代码运行
im = imread(‘coloredChips.png’); % 原图像
R = imnoise(im(:,:,1),‘gaussian’,0,0.01); % R + 白噪声
G = imnoise(im(:,:,2),‘gaussian’,0,0.01); % G + 白噪声
B = imnoise(im(:,:,3),‘gaussian’,0,0.01); % B + 白噪声
im = cat(3,R,G,B); % 原图像 + 白噪声

im1 = Roberts_fspecial(im,‘Roberts’); % 应用Roberts算子锐化图像
figure(‘color’,[1,1,1])
subplot(121),imshow(im,[]),title(‘original image’)
subplot(122),imshow(im1,[]),title(‘Roberts锐化滤波器’)
function im1 = Roberts_fspecial(im,type)
if nargin < 2
type = ‘Roberts’;
end
if ~isa(im,‘double’)
im = double(im)/255;
end
[a, b] = size(im(:,:,1)); %行\列
im1(:,:,1) = zeros(a,b); % R1
switch type
case ‘Roberts’ % Roberts filter
for i = 1:size(im,3) % 矩阵的维数,3D(RGB图像) 或者 2D(灰度图像)
for j=1:a-1 % 行数
for k=1:b-1 % 列数
im1(j,k,i) = abs( im(j+1,k+1,i)-im(j,k,i) ) + abs( im(j+1,k,i)-im(j,k+1,i) );
end
end
end
end
end

你可能感兴趣的:(可视化,MATLAB可视化,数据可视化,matlab)