Mathematica干涉图处理
生活随笔
收集整理的这篇文章主要介绍了
Mathematica干涉图处理
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
下图为某一干涉图,每一级明纹蕴含着相应的高度信息,通常相邻的条纹高度差是恒定的,如果是反射干涉的话,
高度差为半个波长。这里我们假定,最内部明纹高度最小。
处理思路如下,二值化,细化,提取明纹分配高度,然后绘图。代码如下,
img0 = Import["C:/Users/1/Desktop/s2.png"]; img1 = img0 // Binarize // Thinning // DeleteBorderComponents; data = (SortBy[ComponentMeasurements[img1, {"MeanCentroidDistance", "Mask"}], #[[2, 1]] &] // Values); key = MapIndexed[{#1[[2]], 100 #2 // First} &, data]; deal = (Image[#[[1]]] // ImageValuePositions[#, 1] &) /. {a_, b_} :> {a, b, #[[2]]} &; (deal /@ key) // ListPointPlot3D[#, PlotTheme -> "Detailed", Boxed -> False] &结果如下,
转载于:https://www.cnblogs.com/xbjiang71/p/7418138.html
总结
以上是生活随笔为你收集整理的Mathematica干涉图处理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 异步调用可以转化为同步调用吗?
- 下一篇: 基础回顾之List集合