通过matlab处理高斯光场分布图像
发布日期:2021-10-06 15:05:23
浏览次数:14
分类:技术文章
本文共 1111 字,大约阅读时间需要 3 分钟。
文章目录
光场分布图像处理
1 读图与显示
当被打开文件存在于Matlab的工作路径中时,可以使用相对路径;否则需要使用绝对路径。
读取图片的函数为imread
,显示图片的函数为imshow
>> img = imread('test.bmp');%通过相对路径读取图片>> size(img)ans = 1024 1280>> img = imread('D:\MATLAB\Workfold\1106\test.bmp');%通过绝对路径读取图片>> size(img)ans = 1024 1280>> imshow(img)警告: 图像太大,无法在屏幕上显示;将以 50% 显示 > In images.internal.initSize (line 71) In imshow (line 336)
2 显示强度信息
灰度图并不直观,所以我们需要通过3D网格图来将图像进行三维表示,mesh
函数可以做到这一点
>> mesh(img)
得到图片
另外,通过view
函数可以操作3D图的视角。 >> view([0 0 1])
其中,输入的向量[0 0 1]中的三个数分别代表三个轴,[0 0 1]表示从z轴的方向看去。
3 图像截取
上面的图片相对来说过于巨大,存在大量的无用信息,所以需要对图像进行截取,首先通过函数ginput
选择截取区域。ginput
操作的是最后被打开而未被关闭的窗口对象,其输入参数为将要选取的点的个数,在这里我们选择两个点将目标区域框起来,其返回值为选取点的横纵坐标。
>> ginput(2)ans = 709.9190 221.9512 800.6073 314.6341>> roi = img(221:315,709:801);
然后通过矩阵选取的方式,选择感兴趣的区域,需要注意的是,ginput
的输出参数中,x在前,y在后,但是在截取的时候则为行在前,列在后,而x代表列数,y代表行数。截取之后的图片如下图所示
4 数据拟合
高斯光束在上述截面上自然遵循高斯分布,可以看到光斑基本符合中心对称,所以我们可以先将数据降维,可以通过对每一行选出最大值作为单一坐标下的强度
>> arr = max(roi);>> x = 1:length(arr); %创建x坐标>> plot(arr)
在matlab中,可以通过polyfit进行线性拟合,也可以通过fittype自定义函数进行拟合,不过对于初学者而言,可以通过Curve Fitting工具箱进行傻瓜式拟合。
在左下角的Results选框中,即为拟合信息。
转载地址:https://blog.csdn.net/m0_37816922/article/details/102942686 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月01日 03时50分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Ctntos7防火墙命令学习笔记
2019-04-27
Java中this表示当前对象的引用
2019-04-27
Java的匿名对象
2019-04-27
Redis在Windows下的使用命令
2019-04-27
Redis在Linux下的使用命令
2019-04-27
Centos7中连接Redis笔记
2019-04-27
Centos7中搭建Redis集群环境
2019-04-27
JavaScript中实现摸球概率统计事件
2019-04-27
【SpringBoot】十七、SpringBoot中整合Redis
2019-04-27
【SpringBoot】一、创建第一个SpringBoot项目
2019-04-27
JS中禁用浏览器CTRL+S默认事件
2019-04-27
【RabbitMQ】一、RabbitMQ安装Windows版
2019-04-27
【RabbitMQ】三、RabbitMQ操作命令和角色介绍
2021-06-30
【RabbitMQ】四、Java中整合RabbitMQ的使用
2021-06-30
MySQL中关于GROUP_CONCAT(expr)函数的使用
2021-06-30
【SpringBoot】十四、SpringBoot中发送邮件详解
2021-06-30
JavaScript中监听鼠标滚轮事件
2021-06-30
Spring Cloud Gateway使用及配置
2021-06-30
Redis默认最大内存处理原理
2021-06-30