Mathematica处理高斯光束的分布图像
发布日期:2021-10-06 15:05:24
浏览次数:7
分类:技术文章
本文共 2042 字,大约阅读时间需要 6 分钟。
文章目录
通过Mathematica处理光斑图像
1 读图并转为灰度格式
在Mathematica中,通过Import
来打开文件,在记事本(.nb)文件中输入命令后,摁下Shift
+Enter
可以实现命令的输出。
In[1]:= img = Import["E:\\Documents\\00\\1124\\1.bmp"]In[2]:= ImageType[img](*返回img的数据类型,Mathematica中的注释格式为括号与型号*)Out[2]=ByteIn[3]:= ImageValue[img,{ 1,1}](*输出{ 1,1}点的像素值*)Out[3]= { 0.0117647, 0.0117647, 0.0117647}In[4]:= ImageValue[img, { 1, 1}, "Byte"](*以Byte格式输出{ 1,1}点的像素值*)Out[4]= { 3, 3, 3}In[5]:= grey = ColorConvert[img, "Grayscale"](*将图片转为灰度格式*)In[6]:= ImageValue[grey, { 1, 1}]Out[6]= 0.0117647
2 数据获取与显示
Mathematica读取的图像并不仅仅是图像的数据,同时也包括图像的其他信息,在Mathematica中,可以通过ImageData
函数获取图像的数据。
ListPlot3D
来绘制矩阵的三维图。 In[7]:= imgData = ImageData[grey]In[8]:= ListPlot3d[imgData]
其输出图像为
3 数据截取
由于光斑只占据整个图像的一小部分,即对于我们来说,大部分的数据信息是不必要的,所以我们可以对图像进行截取。在Mathematica中,可以直接通过MatrixPlot
绘制伪彩色的矩阵图。右键点击矩阵图,选择获取坐标选项,即可实时反馈鼠标所在位置的矩阵坐标。
In[9]:= MatrixPlot[imgData]得到光斑左下角和右上角分别为{350,229}和{426,300},在Mathematica中,通过
[;;,;;]
的格式来完成子矩阵的获取。需要注意的是,邮件反馈的纵坐标与坐标轴标识的方向正好相反,所以在矩阵截取时需要注意坐标的变换。 In[10]:= roi = imgData[[480 - 300 ;; 480 - 229, 350 ;; 426]];(*结尾加分号取消输出*)In[11]:= MatrixQ[roi](*判断roi是否为矩阵*)Out[11]= TrueIn[12]:= MatrixPlot[roi]In[13]:= ListPlot3d[roi]
4 数据拟合
光斑在空间中呈e的负指数幂的形式从中间向两边衰减,我们可以通过选取光斑矩阵中每一列的最大值作为有效值,对其进行高斯函数的拟合。
In[14]:= arr=Table[Max[roi[[i]], {i,Length[roi]}];In[15]:= ListPlot[arr]
其中,Table[f(i),{i,N}]
表示i从1循环至N这个过程中所对应的f(i)所组成的一个数组,Max
为选取数组中的最大值,Length
为返回数组长度;ListPlot
为绘制点集命令。其输出图像为
NonLinearModelFit
,其输入参数分别为拟合数据,函数表达式,函数参数以及自变量。 In[16]:= fitData = Table[{ i,arr[[i]]},{ i,Length[arr]}];In[17]:= NonlinearModelFit[fitData, a Exp[-((x - b)/c)^2], { a, b, c}, x];In[18]:= gauss["BestFitParameters"]Out[18]= { a -> 0.231113, b -> 36.8372, c -> 19.1083}In[19]:= gauss["ParameterTable"]
在输入拟合函数之后,Mathematica的输出形式为
在输入参数表之后,Mathematica的输出为: 最后,将所得函数与原数据画在同一张图上In[20]:=p1 = Plot[gaussFunc, { x, 0, 100}]; p2 = ListPlot[arr]; Show[p1, p2]
最终得到
转载地址:https://blog.csdn.net/m0_37816922/article/details/103227695 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月17日 20时28分31秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据结构期末复习------排序汇总
2019-04-30
数据结构期末复习------查找汇总
2019-04-30
Vue学习(10)————————编程式导航,地址栏的#号去掉,路由的嵌套
2019-04-30
SpringBoot内置Tomcat配置参数
2019-04-30
Nginx基本知识
2019-04-30
微服务公用实体类andLombok
2019-04-30
小问题
2019-04-30
Spring Security之旅————————————基本介绍安装(1)
2019-04-30
Spring IO Platform学习
2019-04-30
局部加权回归
2019-04-30
已知后序和中序求层序
2019-04-30
1051. Pop Sequence (25)
2019-04-30
ELK系列:新版ELK安装(windows与linux环境)
2019-04-30
Discovering Neural Wiring(2019 nips, nas)
2019-04-30
2020kickstart E round C Toys (优先队列)
2019-04-30
pytorch raise NotImplementedError
2019-04-30
LeetCode 887. 鸡蛋掉落
2019-04-30
第七届acm省赛总结
2019-04-30