lab5.m

来自「Linera filtr (gaussian smoothing)」· M 代码 · 共 61 行

M
61
字号
clc;
clear all;
close all;

I = imread('goldhill_512x512.png');
I = double(I)/255;

%% Filtr 渞edniej arytmetycznej

maska = 1/9*(ones(3));

[m n] = size(I);

for i=2:1:m-1 
    for j=2:1:n-1
        D(i,j)=I(i-1,j-1)*maska(1,1) + I(i-1,j)*maska(1,2) + I(i-1,j+1)*maska(1,3) + I(i,j-1)*maska(2,1) + I(i,j)*maska(2,2) + I(i,j+1)*maska(2,3) + I(i+1,j-1)*maska(3,1) + I(i+1,j)*maska(3,2) + I(i+1,j+1)*maska(3,3);
    end
end


%% Filtr Gaussa


maska = 1/16*[1,2,1 ;2,1,2; 1,2,1];

for i=2:1:m-1
    for j=2:1:n-1
        G(i,j)=I(i-1,j-1)*maska(1,1) + I(i-1,j)*maska(1,2) + I(i-1,j+1)*maska(1,3) + I(i,j-1)*maska(2,1) + I(i,j)*maska(2,2) + I(i,j+1)*maska(2,3) + I(i+1,j-1)*maska(3,1) + I(i+1,j)*maska(3,2) + I(i+1,j+1)*maska(3,3);
    end
end


%% nieostre maskowanie

tempI = I(1:511, 1:511);

E = tempI + (tempI - D);

%% FILTR LAPLACE'a

maskal = [1 -2 1; -2 4 -2; 1 -2 1];

for i=2:m-1
   for j=2:n-1
      L(i,j)=sum(sum(I(i-1:i+1, j-1:j+1).*maskal));                
   end
end

La = tempI + L;


figure
imshow(I)
figure
imshow(D)
figure
imshow(G)
figure
imshow(E)
figure
imshow(La)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?