欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Mathematica干涉图处理

发布时间:2025/4/9 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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干涉图处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。