2016-12-23 26 views
2

出力データ(1200 * 1200)を得るためにデータ(120 * 120)を補間します。Scipy interp2dはマスクされた塗りつぶし値を補間します

このように私はscipy.interpolate.interp2dを使用しています。

以下は私の入力データです。ここで255は塗りつぶし値に対応しており、補間の前にこれらの値をマスクしています。

tck = interp2d(np.linspace(0, 1200, data.shape[1]), 
       np.linspace(0, 1200, data.shape[0]), 
       data, 
       fill_value=255) 
data = tck(range(1200), range(1200)) 
data = np.ma.MaskedArray(data, data == 255) 

私は次のような結果を得る::私は以下のコードを使用してい

Input data

Output data

値を入力しますが補間されています。

データ補間値を補間せずにデータを補間するにはどうすればよいですか?

答えて

0

私はscipy.interpolate.griddataで解決策を見つけましたが、それが最良のものかどうかはわかりません。

私は補間点に最も近いデータ点の値を返すnearestメソッドパラメータでデータを補間します。

points = np.meshgrid(np.linspace(0, 1200, data.shape[1]), 
        np.linspace(0, 1200, data.shape[0])) 
points = zip(points[0].flatten(), points[1].flatten()) 
xi = np.meshgrid(np.arange(1200), np.arange(1200)) 
xi = zip(xi[0].flatten(), xi[1].flatten()) 

tck = griddata(np.array(points), data.flatten(), np.array(xi), method='nearest') 
data = tck.reshape((1200, 1200)) 

Output data

関連する問題