您当前的位置: 首页 >  图像处理

Better Bench

暂无认证

  • 3浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现

Better Bench 发布时间:2021-11-29 23:15:58 ,浏览量:3

目录
  • 1 基于灰度矩的亚像素边缘检测理论
  • 2 MATLAB实现
    • 2.1 main.m
    • 2.2 Conv.m
    • 2.3 Zhongxin.m

【代码下载】

1 基于灰度矩的亚像素边缘检测理论

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

参考文献:亚像素边缘检测技术研究_张美静

2 MATLAB实现 2.1 main.m
clear;
clc;
tic;%启动计时器,计算程序运行时间
tau=25;
delt=0.5;
N=7;
picture_init=imread('Pic1_2.bmp');
subplot(221);
imshow(picture_init),title('原图像'); 
picture_double=double(picture_init);
[height,wideth]=size(picture_double);

index=1;
fid=fopen('SubpixelEdgeData.txt', 'w');
yaxiangsu_e=zeros(height,wideth);%定义矩阵,并初始化为0,用于边缘的图像的显示
for j=4:1:height-3
    for i=4:1:wideth-3
         m1=conv(picture_double,1,j,i);%计算一阶灰度距
         m2=conv(picture_double,2,j,i);%计算二阶灰度距
         sigma=sqrt(m2-m1^2);
         if sigma>tau
             m3=conv(picture_double,3,j,i);%计算三阶灰度距
             s=(m3+2*m1^3-m1*m2*3)/(sigma^3);
             p1=(1+s*sqrt(1.0/(4+s^2)))/2;%归一化参数
             p2=1-p1;
             h1=m1-sigma*sqrt(p2/p1);
             h2=m1+sigma*sqrt(p1/p2);
             if abs(h1-h2)>sigma*2
                 A=min(p1,p2);
                 x=fzero(@(x)x-0.5*sin(2*x)-A*pi,1.42);%求解超越方程,得到x的值
                 rou =cos(x);
                 if rou             
关注
打赏
1665674626
查看更多评论
0.0425s