图像分割——线检测——方向算子(Matlab)

clc;
clear all;
close all;

%线检测测试图像(Detection of Line)
I=im2double(imread('D:\Gray Files\10-5.tif'));
[M,N]=size(I);
%===============================线检测(二)=================================
%线检测方向算子
L_Horizontal=[-1 -1 -1;2 2 2;-1 -1 -1];
L_45=[2 -1 -1;-1 2 -1;-1 -1 2;];
L_Vertical=[-1 2 -1;-1 2 -1;-1 2 -1];
L_135=[-1 -1 2;-1 2 -1 ;2 -1 -1];
%上述方向算子的大小
n=3;
g_Horizontal=zeros(M,N);
g_45=zeros(M,N);
g_Vertical=zeros(M,N);
g_135=zeros(M,N);
n_l=floor(n/2);
%对原图进行扩展,方便处理边界
I_pad=padarray(I,[n_l,n_l],'symmetric');
%门限
T=0.89903;
for i=1:M
    for j=1:N
        %获得图像子块区域
        Block=I_pad(i:i+2*n_l,j:j+2*n_l);
        %用拉氏内核对子区域卷积
        g_45(i,j)=sum(sum(-L_45.*Block));

    end
end
imshow(g_45)

 

你可能感兴趣的:(图像处理,图像分割,线检测,方向算子)