IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现 -> 正文阅读

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

【代码下载】

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 <=delt*2/N
                     [x0,y0]=zhongxin(picture_double,j,i);%计算模板圆的灰度重心坐标
                     sin_o=y0/sqrt(x0^2+y0^2);
                     cos_o=x0/sqrt(x0^2+y0^2);
                     Xs(index)=i+rou*cos_o*N/2;%计算亚像素横坐标x坐标值,保存在数组Xs中,方便查看
                     Ys(index)=j+rou*sin_o*N/2;%计算亚像素纵坐标y坐标值
                     fprintf(fid, '%f\t%f\r\n', Xs(index), Ys(index));%将得到亚像素边缘数据保存到txt文件中方便查看
                     Xs_int=round(Xs(index));%取整用于显示结果
                     Ys_int=round(Ys(index));
                     yaxiangsu_e(Ys_int,Xs_int)=1;
                     index=index+1;
                 end
             end
         end      
    end
end
subplot(222);
imshow(yaxiangsu_e),title('灰度矩亚像素边缘检测结果'); 

subplot(223);
I41=imfill(yaxiangsu_e,'holes');
imshow(I41)
title('孔洞填充图像');
% 提取最外围边缘
subplot(224);
I4=bwperim(I41);                   
imshow(I4); title('边缘图像');
% 去除面积小于150px物体
% subplot(224); 
% I5=bwareaopen(I4,100);    
% imshow(I5);

2.2 Conv.m

function result=conv(picture,nsqure,j,i)
%-----------------------计算模板与灰度矩阵的卷积---------------------%
M=[0 0.00913767235 0.021840193 0.025674188 0.021840193 0.00913767235 0;0.00913767235 0.025951560 0.025984481 0.025984481 0.025984481 0.025951560   0.00913767235 ;0.021840193   0.025984481   0.025984481 0.025984481 0.025984481 0.025984481   0.021840193; 0.025674188   0.025984481   0.025984481 0.025984481 0.025984481 0.025984481   0.025674188;	0.021840193   0.025984481   0.025984481 0.025984481 0.025984481 0.025984481   0.021840193;    0.00913767235 0.025951560   0.025984481 0.025984481 0.025984481 0.025951560   0.00913767235; 0 0.00913767235 0.021840193 0.025674188 0.021840193 0.00913767235 0];%卷积模板

result=picture(j-3,i-3)^nsqure*M(1)+picture(j-2,i-3)^nsqure*M(2)+picture(j-1,i-3)^nsqure*M(3)+picture(j,i-3)^nsqure*M(4)+picture(j+1,i-3)^nsqure*M(5)+picture(j+2,i-3)^nsqure*M(6)+picture(j+3,i-3)^nsqure*M(7)+picture(j-3,i-2)^nsqure*M(8)+picture(j-2,i-2)^nsqure*M(9)+picture(j-1,i-2)^nsqure*M(10)+picture(j,i-2)^nsqure*M(11)+picture(j+1,i-2)^nsqure*M(12)+picture(j+2,i-2)^nsqure*M(13)+picture(j+3,i-2)^nsqure*M(14)+picture(j-3,i-1)^nsqure*M(15)+picture(j-2,i-1)^nsqure*M(16)+picture(j-1,i-1)^nsqure*M(17)+picture(j,i-1)^nsqure*M(18)+picture(j+1,i-1)^nsqure*M(19)+picture(j+2,i-1)^nsqure*M(20)+picture(j+3,i-1)^nsqure*M(21)+picture(j-3,i)^nsqure*M(22)+picture(j-2,i)^nsqure*M(23)+picture(j-1,i)^nsqure*M(24)+picture(j,i)^nsqure*M(25)+picture(j+1,i)^nsqure*M(26)+picture(j+2,i)^nsqure*M(27)+picture(j+3,i)^nsqure*M(28)+picture(j-3,i+1)^nsqure*M(29)+picture(j-2,i+1)^nsqure*M(30)+picture(j-1,i+1)^nsqure*M(31)+picture(j,i+1)^nsqure*M(32)+picture(j+1,i+1)^nsqure*M(33)+picture(j+2,i+1)^nsqure*M(34)+picture(j+3,i+1)^nsqure*M(35)+picture(j-3,i+2)^nsqure*M(36)+picture(j-2,i+2)^nsqure*M(37)+picture(j-1,i+2)^nsqure*M(38)+picture(j,i+2)^nsqure*M(39)+picture(j+1,i+2)^nsqure*M(40)+picture(j+2,i+2)^nsqure*M(41)+picture(j+3,i+2)^nsqure*M(42)+picture(j-3,i+3)^nsqure*M(43)+picture(j-2,i+3)^nsqure*M(44)+picture(j-1,i+3)^nsqure*M(45)+picture(j,i+3)^nsqure*M(46)+picture(j+1,i+3)^nsqure*M(47)+picture(j+2,i+3)^nsqure*M(48)+picture(j+3,i+3)^nsqure*M(49);

2.3 Zhongxin.m

function [x,y]=zhongxin(picture,j,i)
%-------用于计算灰度圆的灰度重心坐标-------%
huidu_sum=0;
huidu_x=0;
huidu_y=0;
for m=j-3:1:j+3
    for n=i-3:1:i+3
        huidu_sum=huidu_sum+picture(m,n);
        huidu_x=huidu_x+picture(m,n)*n;
        huidu_y=huidu_y+picture(m,n)*m;
    end
end
huidu_sum=huidu_sum-picture(j-3,i-3)-picture(j-3,i+3)-picture(j+3,i-3)-picture(j+3,i+3);
huidu_x=huidu_x-picture(j-3,i-3)*(i-3)-picture(j-3,i+3)*(i+3)-picture(j+3,i-3)*(i-3)-picture(j+3,i+3)*(i+3);
huidu_y=huidu_y-picture(j-3,i-3)*(j-3)-picture(j-3,i+3)*(j-3)-picture(j+3,i-3)*(j+3)-picture(j+3,i+3)*(j+3);
x=huidu_x/(huidu_sum+eps);
y=huidu_y/(huidu_sum+eps);

实验结果图
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:37:27  更:2021-11-30 15:37:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 3:56:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码