激光线投射到物体上,会被物体的轮廓调制,即,激光线图像会携带物体的轮廓信息,但是激光器的工作特点使其投射的激光线有一定宽度,不符合图像处理的要求,图像中的光条纹通常具有一定的宽度,能否准确地提取光条纹中心是测量线结构光的关键步骤之一。

常见的光线中心线提取法:极值法,阈值法,灰度重心法,梯度重心法,曲线拟合法,Hessian算法等,光条提取速度与提取精度,很难同时兼顾二者。

激光线图像特点:

1.光束与被测物体相交,在被测物体表面产生光条。

2.易受影响产生畸变,不连续光条。

3.这种程度包含了物体表面的深度信息。

极值法:利用光带中心点位于光带横截面灰度的极大值处这一特性,找到光强的极大值即获得光带中心。

阈值法是在结构光光条特性以及被测物体表面特性相同的情况下,阈值分割处理后,将光条横截面中灰度值大于预设门限的左右两像素为起点和终点,二者的平均位置即光条中心。

灰度重心法利用数学上质心的定义,将灰度值作为质量处理,计算沿坐标轴方向的灰度重心点来代表该截面的激光条纹的中心点位置,按照行或者列遍历图像,拟合得到的点作为激光条纹的中心线。其公式为:

看了某位大神的OpenCV的代码,然后尝试转换成了MATLAB的代码。

MATLAB代码:


clear;clc;close all;%% 输入图像
I=imread('laser.png');
I=double(rgb2gray(I)); %%%转换成灰度图
I=I(3:end-2,3:end-2);  %%%原图边界处全是白的,要去掉,否则影响效果,其他图可能不需要
figure
imshow(I,[])
title('原始图像')       %%%显示原图%% 极值法:首先将图像转化为灰度图,然后按行寻找每一列的亮度最大值, 在这里还加入了一个阈值threshod,也可以不加
tic
th=120;                %%%设定阈值
I1=zeros(size(I,1),size(I,2));for j=1:size(I,2)  %%%遍历图像的每一列,找出每一列强度最大值所在的行,当该位置的强度大于阈值时,认为这一列的激光所在位置即为该行t=find (I(:,j)==max(I(:,j)));t1(j)=round(mean(t));if I(t1(j),j)>thI1(t1(j),j)=255;endend
figure
imshow(I1,[])
title('极值法')
clear t1 ttoctic
%% 阈值法:从图像的左右两侧向中间寻找激光条的左右边界,然后找到左右边界的中点即为激光线的中心th=120; %%% 阈值
I2=zeros(size(I,1),size(I,2)); for j=1:size(I,2)  %%%遍历图像的每一列,找出每一列像素强度>阈值的所有行,取这些行数的平均值即认为该平均值所在的行为激光线t=find (I(:,j)>th); t1(j)=round(mean(t));if isnan (t1(j))~=1   %%%排除一些不存在满足条件的列 比如某一列没有强度大于阈值的点I2(t1(j),j)=255;endend
figure
imshow(I2,[])
title('阈值法')
clear t1 t
toctic
%% 灰度质心法:将图像转为灰度图并二值化,把灰度值看作质量,每一行的重心作为激光线的中心th=120;
I3=zeros(size(I,1),size(I,2));
Ib=I;
for j=1:size(I,2)   %%%图像二值化,认为大于阈值的像素为1,小于的是0for i=1:size(I,1)if Ib(i,j)>thIb(i,j)=1;elseIb(i,j)=0;endend
end
l=1:size(I,1);
for j=1:size(I,2)  %%%遍历图像的每一列t=Ib(:,j).*l'; %%%计算每一行的加权和,即sum(行数*对应的强度)t1(j)=round(sum(t)/sum(Ib(:,j))); %%%加权平均,即用加权和除以像素的强度和,确定重心位置   if isnan (t1(j))~=1  %%%排除一些不存在满足条件的列 比如某一列没有强度大于阈值的点p=0;if I(t1(j),j)>thI3(t1(j),j)=255;endend
end
figure
imshow(I3,[])
title('灰度质心法')
clear t1 ttoc

激光中心线算法MATLAB仿真相关推荐

  1. ICP算法MATLAB仿真

    2022.4.15再次附上数据satellite.txt新链接: 链接:https://pan.baidu.com/s/1mEN-FQbTlHOWfxCHyu0Dxg 提取码:02i4 (永久有效) ...

  2. Matlab算法DSP移植验证,DSP计算机作业 自适应噪声抵消LMS算法Matlab仿真

    [实例简介] 自适应噪声抵消LMS算法Matlab仿真,DSP计算机作业 数字信号处理 自适应 1) 借助MATLAB画出误差性能曲面和误差性能曲面的等值曲线: 2) 写出最陡下降法, LMS算法的计 ...

  3. 【ISAR成像定标方法(1)—转台目标的RD成像算法MATLAB仿真】

    目录 前提介绍 ISAR成像基本流程 ISAR成像转台模型与回波建模 转台模型 发射信号与回波信号分析 转台目标RD成像算法 转台目标RD成像的仿真实验与分析 结语 前提介绍  ISAR成像定标方法的 ...

  4. 用matlab仿真导航信号,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)[互联网+]...

    <北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)[互联网+]>由会员分享,可在线阅读,更多相关<北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLA ...

  5. 用matlab仿真导航信号,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)...

    <北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)>由会员分享,可在线阅读,更多相关<北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)(9 ...

  6. 卫星测控matlab程序,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序).docx...

    PAGE 4 北斗卫星导航信号串行捕获算法MATLAB仿真报告 原理 卫星导航信号的串行捕获算法如图1所示. 图1 卫星导航信号的串行捕获算法 接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且 ...

  7. 基于直方图均衡化的水下激光图像处理(MATLAB仿真)

    原文:http://blog.csdn.net/sunlinyi66/article/details/39215447 基于直方图均衡化的水下图像增强(MATLAB仿真) 可以对RGB三个通道进行直方 ...

  8. 一个简单的基于形态学处理的报纸图像版面分割算法matlab仿真

    目录 一.理论基础 二.部分MATLAB仿真 三.仿真结论分析 一.理论基础 图像分割就是把图像分成若干个特定的.具有独特性质的区域并提出感兴趣目标的技术和过程.它是由图像处理到图像分析的关键步骤.现 ...

  9. 条形碎片图纸的自动拼接规则算法matlab仿真

    目录 1.算法概述 2.仿真效果 3.matlab仿真源码 1.算法概述 破碎文件的拼接在司法物证复原.历史文献修复以及军事情报获取等领域都有着重要的应用.目前发现对碎纸片的拼接大部分由人工完成,准确 ...

  10. 基于Gabor滤波器的指纹图像增强处理算法matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 Gabor 变换是一种加窗短时 Fourier 变换(简单理解起来就是在特定时间窗内做 Fourier 变换),是短时 Fou ...

最新文章

  1. 如何用php获取网页表格,PHP获取网页上任意表格中内容的通用程序的制作
  2. 6.6 数据集的存储与表达
  3. SAP物料主数据创建时间和创建个数的函数关系
  4. SiteMesh参考
  5. Bokeh 关键概念
  6. android中函数的直接使用用import就可以了吗各种类不用创建对象吗_React Hooks 如何安全地使用state...
  7. .Net Core之MVC项目的简单应用
  8. 【Spring-Cached】Cached之Caffeine
  9. 怎么将mp3音乐转成ogg格式
  10. 正则表达式基础语法大全
  11. ioncube php encode,ioncube加密与解密 php代码
  12. phpcms 允许英文目录有空格
  13. python均线斜率_一根20日均线闯天下——量化回测“压箱底指标”,值得散户认真研读...
  14. 从特斯拉AI团队学到的九条方法论
  15. mysql统计每个学生的选课门数_SQL一个查询中包含两个聚集函数怎么弄啊例如,查询每名学生的选课门数和平均成绩怎么弄啊...
  16. 打开资源管理器显示该文件没有与之关联的程序来执行该操作......
  17. android三星s8底部菜单,【Android】三星Galaxy S8及S8+的屏幕适配
  18. win 10 PHP开发环境配置
  19. chrome访问淘宝和京东崩溃,解决方法
  20. 【解决】mac移动硬盘只读错误,不丢失资料

热门文章

  1. ViewPager翻页动画失效详解
  2. 牙医管家牙科软件APP功能-“看牙无忧”口腔分期功能介绍
  3. 使用计算机的什么来储存数据,电脑数据存贮器
  4. android webview 加载过程,实战:七步完成Android Webview图片加载
  5. 英语在线教育机构争战AI风口,为何雷声大雨点小?
  6. Titan XP值不值?一文教你如何挑选深度学习GPU
  7. C# 读取网卡、设置网上、自动连接Wifi
  8. 企业单位Win 10家庭版如何打开Guest用户,并共享打印机
  9. 电视盒子显示ntp服务器异常,云计算-更换VRM主节点所在服务器主板后,出现VRM与NTP服务器状态异常的处理方法...
  10. vue3.0+vite+ts使用swiper如何掉用autoplay