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)