内容摘要
本篇介绍图像的边缘检测,主要有Lapalace、Prewitt、Sobel和Roberts等四种经典的图像边缘检测的算子,及其MATLAB实现代码。
Lapalace算子
代码如下:
function Img_edge=Lapalace(Img_input)
[n, m, c]=size(Img_input);
if c~=1
Img_input=rgb2gray(Img_input);
end
Img_raw=int32(Img_input); %防止uint8溢出
Img_edge=int32(zeros(n-2,m-2)); %舍弃边缘
for i=2:n-1
for j=2:m-1
Img_edge(i-1,j-1)=abs(4*Img_raw(i,j)-Img_raw(i-1,j)-Img_raw(i,j-1)-Img_raw(i,j+1)-Img_raw(i+1,j));
end
end
end
Prewitt算子
代码如下:
function Img_edge=Prewitt(Img_input, choice)
[n, m, c]=size(Img_input);
if c~=1
Img_input=rgb2gray(Img_input);
end
deg=180.0/3.1415927;
Img_raw=int32(Img_input);
Img_edge=int32(zeros(n-2,m-2));
gradient_direction=int32(zeros(n-2,m-2));
for i=2:n-1
for j=2:m-1
dx=Img_raw(i-1,j-1)+Img_raw(i,j-1)+Img_raw(i+1,j-1)-(Img_raw(i-1,j+1)

这篇博客介绍了数字图像处理中的边缘检测技术,包括Laplace、Prewitt、Sobel和Roberts四种算子的详细解释及MATLAB实现代码,通过这些算子可以有效地识别图像边界。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



