日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python规则网格插值_Python中规则网格上的插值

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python规则网格插值_Python中规则网格上的插值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是合理的解決方案很大程度上取決于你試圖用插值像素回答的問題——請注意清空器:對丟失的數據進行外推會導致非常誤導的答案!

徑向基函數插值/核平滑

就Python中可用的實際解決方案而言,填充這些像素的一種方法是使用Scipy的徑向基函數插值實現(參見here),其目的是對散亂數據進行平滑/插值。

考慮到矩陣M和底層的一維坐標數組r和c(這樣M.shape == (r.size, c.size)),其中M的缺失項被設置為nan,這對于線性RBF內核來說工作得相當好,如下所示:import numpy as np

import scipy.interpolate as interpolate

with open('measurement.txt') as fh:

M = np.vstack(map(float, r.split(' ')) for r in fh.read().splitlines())

r = np.linspace(0, 1, M.shape[0])

c = np.linspace(0, 1, M.shape[1])

rr, cc = np.meshgrid(r, c)

vals = ~np.isnan(M)

f = interpolate.Rbf(rr[vals], cc[vals], M[vals], function='linear')

interpolated = f(rr, cc)

這將生成您鏈接到上面的數據的以下插值,盡管看起來很合理,但它確實強調了丟失樣本與實際數據的比率有多不利:

高斯過程回歸/Kriging

克里格插值可以通過scikit學習庫中的Gaussian Process Regression實現(它本身基于用于Matlab的DACE克里格工具箱)獲得。可按如下方式調用:from sklearn.gaussian_process import GaussianProcess

gp = GaussianProcess(theta0=0.1, thetaL=.001, thetaU=1., nugget=0.01)

gp.fit(X=np.column_stack([rr[vals],cc[vals]]), y=M[vals])

rr_cc_as_cols = np.column_stack([rr.flatten(), cc.flatten()])

interpolated = gp.predict(rr_cc_as_cols).reshape(M.shape)

這產生了一個非常類似的插值徑向基函數的例子以上。在這兩種情況下,都有很多參數需要探索——這些參數的選擇很大程度上取決于您可以對數據進行的假設。(上述RBF例子中使用的線性核的一個優點是它沒有自由參數)

修補

最后,一個完全visually motivated的解決方案是使用OpenCV的inpainting功能,盡管這假設了8位數組(0-255),并且沒有直接的數學解釋。

總結

以上是生活随笔為你收集整理的python规则网格插值_Python中规则网格上的插值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。