资源简介
利用八个方向的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
- 上一篇:模糊PID的simuli
nk仿真及结果分析 - 下一篇:matlab脑电信号处理
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论