资源简介

利用八个方向的sobel边缘检测,其中为防止灰度值溢出对灰度值进行一个扩大和缩放的过程,可以检测出八个方向的灰度梯度值,检测出的边缘更加平缓连续,有兴趣的可以了解一下。

资源截图

代码片段和文件信息

clear all;clc
s0=[-1-2-1;000;121];
s45=[-2-10;-101;012];
s90=[-101;-202;-101];
s135=[012;-101;-2-10];
s180=[121;000;-1-2-1];
s225=[210;10-1;0-1-2];
s270=[10-1;20-2;10-1];
s315=[0-1-2;10-1;210];%八个方向的sobel算子
A=imread(‘1.bmp‘);
[uv]=size(A);
B=zeros(uv);
B1=uint16(B);%生成和原图片大小相同的图片但考虑经过边缘检测后值较大故设置为uint16
for i=1:u
    for j=1:v
        B1(ij)=A(ij);
    end
end
%A=im2double(A);
image(1).x=abs(filter2(s0B1));
image(2).x=abs(filter2(s45B1));
image(3).x=abs(filter2(s90B1));
image(4).x=abs(filter2(s135B1));
image(5).x=abs(filter2(s180B1));
image(6).x=abs(filter2(s225B1));
image(7).x=abs(filter2(s270B1));
image(8).x=abs(filter2(s315B1));%进行八个方向的sobel算子图像边缘检测
image1=edge(A‘sobel‘);%进行传统的sobel算子边缘检测
image2=edge(A‘prewitt‘);%进行prewitt算子边缘检测
B2=B;
for i=1:8
   B2=max(B2image(i).x) ;%将各个方向的sobel算子边缘检测的最大值汇总到一张图片中
end
D=B2/1.5;%避免灰度值溢出,将其缩放
BB=uint8(B);
for i=1:u
    for j=1:v
        BB(ij)=D(ij);
    end
end
C=graythresh(BB);
D=im2bw(BBC);%二值化
figure
imshow(A);xlabel(‘图1:原图‘)
figure
imshow(image1);xlabel(‘图2:传统sobel‘)
figure
imshow(image2);xlabel(‘图3:prewitt算法‘)
figure
imshow(D);xlabel(‘图4:八个方向sobel‘)
%//对缩放因子进行分析//
x1=0;x2=0;x3=0;
for i=100:150    %选定包含目标的小区域
      for j=100:150
        x1=x1+1;
        x2=x2+image1(ij);
        x3=x3+image2(ij);%提取出的边缘信息求和
      end
end
x2=x2/x1;
x3=x3/x1;
x=1:0.01:2;
for c=1:length(x)
    x4=0;
    D=B2/x(c);%避免灰度值溢出,将其缩放
    BB=uint8(B);
   for i=1:u
      for j=1:v
        BB(ij)=D(ij);
      end
   end
   C=graythresh(BB);
   D=im2bw(BBC);
   for i=100:150  %选定包含目标的小区域
       for j=100:150
           x4=x4+D(ij);%八个方向Sobel提取出的边缘信息求和
       end
   end
   p(c)=x4/x1;%八个方向sobel边缘检测比例
   p1(c)=x2;%传统sobel边缘检测比例
   p2(c)=x3;%prewitt边缘检测比例
end
figure
plot(xp‘-‘);
hold on;
plot(xp1‘+‘);
hold on
plot(xp2‘.‘);
legend(‘八个方向sobel‘‘传统sobel‘‘prewitt‘); % legend 会自动根据画图顺序分配图形
xlabel(‘缩放因子‘);
ylabel(‘边缘检测比例‘);
hold off; 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-17 16:25  边缘检测\
     文件       66614  2018-04-13 12:47  边缘检测\1.bmp
     文件       66614  2004-03-23 21:24  边缘检测\lena.bmp
     文件        2284  2018-05-10 17:28  边缘检测\sd.m
     文件         163  2019-05-15 16:36  说明.txt

评论

共有 条评论