最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python光學(xué)仿真學(xué)習(xí)處理高斯光束分布圖像

 更新時(shí)間:2021年10月20日 09:56:29   作者:微小冷  
這篇文章主要為大家介紹了Python光學(xué)仿真學(xué)習(xí)之如何處理高斯光束的分布圖像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

通過(guò)python處理光斑圖像

1 相關(guān)包與圖像讀取

首先需要科學(xué)計(jì)算必備包numpy和畫(huà)圖包matplotlib.pyplot,我們通過(guò)后者進(jìn)行圖像數(shù)據(jù)的讀取.

plt.imread讀取圖片之后為數(shù)據(jù)格式為numpy數(shù)組,可以通過(guò)成員函數(shù)astype將整型數(shù)據(jù)變成浮點(diǎn)型,有利于后期處理。

plt.imshowimg的數(shù)據(jù)加載到窗口,plt.show()顯示繪圖窗口,默認(rèn)顯示為偽彩圖。

python自動(dòng)畫(huà)出了偽彩圖,可以通過(guò)在plt.imshow的過(guò)程中輸入cmap參數(shù)使之得到灰度圖

>>> plt.imshow(img,cmap=plt.cm.gray)
<matplotlib.image.AxesImage object at 0x000002E84F5B4788>
>>> plt.show()

2 圖像截取

由于光斑只占據(jù)圖片中很小一部分,大量的冗余信息等同于噪聲,會(huì)對(duì)后期的數(shù)據(jù)處理造成影響,故需截取感興趣的區(qū)域,plt.ginput函數(shù)提供一種交互操作方法,可返回鼠標(biāo)點(diǎn)擊的位置,其輸入?yún)?shù)為選取點(diǎn)數(shù),輸出為點(diǎn)擊的點(diǎn)的坐標(biāo)。

>>> plt.imshow(img)
<matplotlib.image.AxesImage object at 0x000002E857A21448>
>>> plt.ginput(2)
[(717.0757575757577, 299.8290043290042), (783.5692640692644, 233.33549783549768)]

在python中,通過(guò)方括號(hào)進(jìn)行矩陣索引,圖片的截取方法為

>>> roi = img[233:299,717:783]
>>> plt.imshow(roi)
<matplotlib.image.AxesImage object at 0x000002E84F5B4948>
>>> plt.show()

img/py2.png

3顯示強(qiáng)度

為了更加直觀(guān)地反映光斑強(qiáng)度,以圖片行列為坐標(biāo),可以繪制3d強(qiáng)度圖。

繪制二維曲線(xiàn),要求輸入相應(yīng)的自變量和因變量,通過(guò)點(diǎn)和點(diǎn)的一一對(duì)應(yīng),畫(huà)出曲線(xiàn)。三維圖像繪制亦然,通過(guò)np.meshgrid生成網(wǎng)格坐標(biāo),作為其 x , y x,y x,y向的自變量,其輸入?yún)?shù)為兩個(gè)一維數(shù)組,返回兩個(gè)二維數(shù)組,用以表示這兩個(gè)數(shù)組方向的坐標(biāo)。

>>> xNum,yNum = roi.shape						#獲取roi的維度
>>> xAxis,yAxis = np.meshgrid(range(yNum),range(xNum))	#range創(chuàng)建長(zhǎng)度為xNum的自然數(shù)列
>>> ax = plt.gca(projection='3d')				#建立3D坐標(biāo)軸
>>> ax.plot_surface(xAxis,yAxis,roi)			#創(chuàng)建面元圖
<mpl_toolkits.mplot3d.art3d.Poly3DCollection object at 0x0000019EAFF19D48>
>>> plt.show()

結(jié)果為

img/py3.png

4數(shù)據(jù)擬合

光斑在空間中的分布形式呈中心對(duì)稱(chēng)的特征,故可抽取出其徑向坐標(biāo)進(jìn)行降維操作,考慮到數(shù)據(jù)的穩(wěn)定性,并排除非信號(hào)區(qū)的影響,可提取每一列的最大值

>>> arr = np.max(roi,0)
>>> x = np.arange(len(arr))
>>> plt.plot(x,arr)
[<matplotlib.lines.Line2D object at 0x0000019EB469EB48>]
>>> plt.show()

結(jié)果如圖所示

在這里插入圖片描述

在python中,需要通過(guò)引入科學(xué)計(jì)算庫(kù)scipy中的優(yōu)化擬合包optimize中的curve_fit函數(shù)來(lái)進(jìn)行數(shù)據(jù)的高斯擬合。curve_fit的輸入?yún)?shù)為擬合函數(shù),自變量和因變量;輸出參數(shù)為擬合函數(shù)中的其他參數(shù)以及擬合評(píng)價(jià)參數(shù)。

其中高斯函數(shù)的表達(dá)形式為

在這里插入圖片描述

>>> from scipy.optimize import curve_fit
>>> def gauss(x, a, b, c):
...     return a*np.exp(-(x-b)**2/c**2)
...
>>> abc,  para = curve_fit(gauss,x,arr)
>>> abc							#即上式中的a,b,c
array([89.72326971, 35.58522403, 20.86186403])	
>>> fitValue = gauss(x,abc[0],abc[1],abc[2])	#擬合值
>>> plt.scatter(x,arr)			#繪制原始數(shù)據(jù)的散點(diǎn)圖
<matplotlib.collections.PathCollection object at 0x0000019EB5438D88>
>>> plt.plot(x,fitValue)		#繪制擬合數(shù)據(jù)的曲線(xiàn)圖
[<matplotlib.lines.Line2D object at 0x0000019EB46D4048>]
>>> plt.show()

在這里插入圖片描述

問(wèn)題

如果包沒(méi)有安裝的話(huà),可以在命令行中用pip文件進(jìn)行安裝

> pip install numpy
> pip install matplotlib
> pip install scipy

以上就是Python光學(xué)仿真學(xué)習(xí)處理高斯光束分布圖像的詳細(xì)內(nèi)容,更多關(guān)于Python處理高斯光束分布圖像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題

    解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題

    這篇文章主要介紹了解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 教你如何在Pygame 中移動(dòng)你的游戲角色

    教你如何在Pygame 中移動(dòng)你的游戲角色

    Pygame是一組跨平臺(tái)的 Python 模塊,專(zhuān)為編寫(xiě)視頻游戲而設(shè)計(jì),您可以使用 pygame 創(chuàng)建不同類(lèi)型的游戲,包括街機(jī)游戲、平臺(tái)游戲等等,今天通過(guò)本文給大家介紹Pygame移動(dòng)游戲角色的實(shí)現(xiàn)過(guò)程,一起看看吧
    2021-09-09
  • 詳解TensorFlow2實(shí)現(xiàn)線(xiàn)性回歸

    詳解TensorFlow2實(shí)現(xiàn)線(xiàn)性回歸

    這篇文章主要介紹了TensorFlow2實(shí)現(xiàn)線(xiàn)性回歸的詳細(xì)解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • NoSql數(shù)據(jù)庫(kù)介紹及使用Python連接MongoDB

    NoSql數(shù)據(jù)庫(kù)介紹及使用Python連接MongoDB

    MongoDB是一個(gè)非常流行的NoSQL數(shù)據(jù)庫(kù),常用于大規(guī)模數(shù)據(jù)存儲(chǔ)應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于NoSql數(shù)據(jù)庫(kù)及使用Python連接MongoDB的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • python如何通過(guò)pyqt5實(shí)現(xiàn)進(jìn)度條

    python如何通過(guò)pyqt5實(shí)現(xiàn)進(jìn)度條

    這篇文章主要介紹了python如何通過(guò)pyqt5實(shí)現(xiàn)進(jìn)度條,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python數(shù)據(jù)分析matplotlib設(shè)置多個(gè)子圖的間距方法

    Python數(shù)據(jù)分析matplotlib設(shè)置多個(gè)子圖的間距方法

    今天小編就為大家分享一篇Python數(shù)據(jù)分析matplotlib設(shè)置多個(gè)子圖的間距方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 基于Python+Tkinter實(shí)現(xiàn)音樂(lè)播放器

    基于Python+Tkinter實(shí)現(xiàn)音樂(lè)播放器

    Tkinter 是 Python 中用于創(chuàng)建圖形用戶(hù)界面 (GUI) 的標(biāo)準(zhǔn)庫(kù)之一,它是一個(gè)簡(jiǎn)單而強(qiáng)大的工具,適用于創(chuàng)建各種類(lèi)型的窗口應(yīng)用程序,本文給大家介紹了如何基于Python+Tkinter實(shí)現(xiàn)音樂(lè)播放器,需要的朋友可以參考下
    2025-03-03
  • Python help()函數(shù)用法詳解

    Python help()函數(shù)用法詳解

    這篇文章主要介紹了Python help()函數(shù)的作用,并舉例說(shuō)明它的詳細(xì)用法,需要的朋友可以參考下
    2014-03-03
  • python 魔法函數(shù)實(shí)例及解析

    python 魔法函數(shù)實(shí)例及解析

    這篇文章主要介紹了python 魔法函數(shù)實(shí)例及解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python多線(xiàn)程與多進(jìn)程相關(guān)知識(shí)總結(jié)

    Python多線(xiàn)程與多進(jìn)程相關(guān)知識(shí)總結(jié)

    進(jìn)程(process)和線(xiàn)程(thread)是操作系統(tǒng)的基本概念,是操作系統(tǒng)程序運(yùn)行的基本單元,本文簡(jiǎn)要介紹進(jìn)程和線(xiàn)程的概念以及Python中的多進(jìn)程和多線(xiàn)程.需要的朋友可以參考下
    2021-05-05

最新評(píng)論

仙居县| 左权县| 鄄城县| 富平县| 武川县| 衡东县| 绥江县| 高邮市| 延川县| 南开区| 合肥市| 新宁县| 富平县| 仁怀市| 玉林市| 铜山县| 长沙市| 屯门区| 资兴市| 铁力市| 阿鲁科尔沁旗| 喀什市| 洛川县| 连州市| 乌审旗| 浏阳市| 岳普湖县| 江津市| 大方县| 甘德县| 呼玛县| 九台市| 玉山县| 沁水县| 河北省| 介休市| 蛟河市| 壶关县| 中卫市| 博乐市| 山东省|