Python nội suy hình ảnh 2d

Có một số phương tiện chung có sẵn trong SciPy để suy giảm nội dung và làm căng dữ liệu ở các chiều 1, 2 và cao hơn. Lựa chọn lựa chọn một công cụ suy đoán thói quen có thể phụ thuộc vào dữ liệu. cho dù nó là một chiều, được đưa ra trên một lưới có cấu trúc hay không có cấu trúc. Một yếu tố khác là độ căng mong muốn của bộ nội suy. Tóm lại, các quy trình được khuyến nghị cho phép các nội dung suy có thể được tóm tắt như sau

Tốt bụng

lịch trình

liên tục

bình luận

1D

tuyến tính

numpy.interp

từng phần liên tục

to from numpy

khối spline

CubicSpline

đạo hàm bậc 2

spline khối đơn điệu

PchipInterpolator

đạo hàm thứ nhất

not too

spline not set method

make_interp_spline

(k-1) đạo hàm thứ

k=3 tương đương với CubicSpline

gần nhất

interp1d

loại=’gần nhất’, ‘trước đó’, ‘tiếp theo’

đường cong N-D

gần nhất, tuyến tính, spline

make_interp_spline

(k-1) đạo hàm thứ

use array N-dim y

Lưới N-D thông thường (tuyến tính)

gần nhất

RegularGridInterpolator

method = 'gần nhất'

tuyến tính

method = 'tuyến tính'

splines

đạo hàm bậc 2

method=’cubic’, ‘quintic’

splines đơn điệu

đường dẫn đầu ra thứ nhất

method = 'pchip'

N-D rải rác

gần nhất

numpy.interp0

bí danh. numpy.interp1

tuyến tính

numpy.interp2

block blocks (chỉ 2D)

numpy.interp3

đường dẫn đầu ra thứ nhất

center function

numpy.interp4

Để làm mịn dữ liệu, các chức năng được cung cấp cho dữ liệu 1 và 2-D bằng cách sử dụng các đường nối khối, dựa trên thư viện FORTRAN FITPACK.

Ngoài ra, các quy trình được cung cấp để nội suy/làm mịn bằng cách sử dụng các hàm cơ sở xuyên tâm với một số nhân.

Thông tin chi tiết được đưa ra trong các liên kết dưới đây

  • Nội suy 1-D
    • Nội suy tuyến tính từng phần
    • khối spline
    • Nội suy đơn điệu
    • Nội suy với B-splines
    • Đường cong spline tham số
    • Giao diện kế thừa cho phép nội suy 1-D (interp1d)
    • Dữ liệu bị mất
  • Đa thức từng phần và splines
    • Thao tác đối tượng numpy.interp6
    • B-splines. nút thắt và hệ thống số
      • Phần cơ sở B-spline
      • Design ma trận trên cơ sở B-spline
  • ☘️ splines
    • Làm sạch Spline trong 1-D
      • Tiếp tục (numpy.interp7)
      • Hướng đối tượng (______18)
    • Các splines làm 2-D
      • Bivariate spline match data partition
      • Bivariate spline match dữ liệu trên lưới
      • Bivariate spline match dữ liệu trong cấu hình cấu hình
  • Nội suy dữ liệu đa biến trên lưới thông thường (RegularGridInterpolator)
    • Data way đều nhau
  • Nội dung phân tán dữ liệu suy giảm (numpy.interp1)
  • Sử dụng các hàm cơ sở xuyên tâm để làm căng/nội suy
    • Ví dụ 1-D
    • Ví dụ 2 chiều
  • tip and thủ thuật ngoại suy
    • interp1d. sao chép các giá trị điền vào bên trái và bên phải của numpy.interp
    • CubicSpline mở rộng các điều kiện biên
    • Thực hiện các tiện ích cận
      • Setup
      • Sử dụng các tiện ích cận đã biết
    • Ngoại suy trong CubicSpline3

Đoạn mã dưới đây minh họa các loại phương pháp nội suy khác nhau có sẵn cho CubicSpline4 sử dụng 400 điểm được chọn ngẫu nhiên từ một hàm thú vị

import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt

x = np.linspace(-1,1,100)
y =  np.linspace(-1,1,100)
X, Y = np.meshgrid(x,y)

def f(x, y):
    s = np.hypot(x, y)
    phi = np.arctan2(y, x)
    tau = s + s*(1-s)/5 * np.sin(6*phi) 
    return 5*(1-tau) + tau

T = f(X, Y)
# Choose npts random point from the discrete domain of our model function
npts = 400
px, py = np.random.choice(x, npts), np.random.choice(y, npts)

fig, ax = plt.subplots(nrows=2, ncols=2)
# Plot the model function and the randomly selected sample points
ax[0,0].contourf(X, Y, T)
ax[0,0].scatter(px, py, c='k', alpha=0.2, marker='.')
ax[0,0].set_title('Sample points on f(X,Y)')

# Interpolate using three different methods and plot
for i, method in enumerate(('nearest', 'linear', 'cubic')):
    Ti = griddata((px, py), f(px,py), (X, Y), method=method)
    r, c = (i+1) // 2, (i+1) % 2
    ax[r,c].contourf(X, Y, Ti)
    ax[r,c].set_title("method = '{}'".format(method))

plt.tight_layout()
plt.show()

Có một số phương tiện chung có sẵn trong SciPy để suy giảm nội dung và làm căng dữ liệu ở các chiều 1, 2 và cao hơn. Lựa chọn lựa chọn một công cụ suy đoán thói quen có thể phụ thuộc vào dữ liệu. cho dù nó là một chiều, được đưa ra trên một lưới có cấu trúc hay không có cấu trúc. Một yếu tố khác là độ căng mong muốn của bộ nội suy. Tóm lại, các quy trình được khuyến nghị cho phép các nội dung suy có thể được tóm tắt như sau

bụng tốt

lịch trình

liên tục

bình luận

1D

tuyến tính

numpy.interp

từng phần liên tục

to from numpy

khối spline

CubicSpline

đạo hàm bậc 2

spline khối đơn điệu

PchipInterpolator

đạo hàm thứ nhất

not too

spline not set method

make_interp_spline

(k-1) đạo hàm thứ

k=3 tương đương với CubicSpline

gần nhất

________số 8

loại=’gần nhất’, ‘trước đó’, ‘tiếp theo’

đường cong N-D

gần nhất, tuyến tính, spline

make_interp_spline

(k-1) đạo hàm thứ

use array N-dim y

Lưới N-D thông thường (tuyến tính)

gần nhất

CubicSpline40

method = 'gần nhất'

tuyến tính

method = 'tuyến tính'

splines

đạo hàm bậc 2

method=’cubic’, ‘quintic’

splines đơn điệu

đường dẫn đầu ra thứ nhất

method = 'pchip'

N-D rải rác

gần nhất

numpy.interp0

bí danh. numpy.interp1

tuyến tính

numpy.interp2

block blocks (chỉ 2D)

numpy.interp3

đường dẫn đầu ra thứ nhất

center function

numpy.interp4

Để làm mềm dữ liệu, các chức năng được cung cấp cho dữ liệu 1 và 2-D bằng cách sử dụng các đường kết nối .

Bên ra, các quy trình được cung cấp để nội suy/làm trơn bằng cách sử dụng các hàm cơ sở xuyên tâm với một .

Thông tin chi tiết được đưa ra trong các liên kết dưới đây

  • Nội suy 1-D
    • Nội suy tuyến tính từng phần
    • khối spline
    • Nội suy đơn điệu
    • Nội suy với B-splines
    • Đường cong spline tham số
    • Giao diện kế thừa cho phép nội suy 1-D (CubicSpline45)
    • Dữ liệu bị mất
  • Đa thức từng phần và splines
    • Thao tác với đối tượng numpy.interp6
    • B-splines. nút thắt và hệ thống số
      • Phần cơ sở B-spline
      • Design ma trận trên cơ sở B-spline
  • ☘️ splines
    • Làm sạch Spline trong 1-D
      • Tiếp tục (numpy.interp7)
      • Hướng đối tượng (______18)
    • Các splines làm 2-D
      • Bivariate spline match data partition
      • Bivariate spline match dữ liệu trên lưới
      • Bivariate spline match dữ liệu trong cấu hình cấu hình
  • Nội dung suy dữ liệu đa biến trên lưới thông thường (CubicSpline40)
    • Data way đều nhau
  • Nội dung phân tán dữ liệu suy giảm (numpy.interp1)
  • Sử dụng các hàm cơ sở xuyên tâm để làm căng/nội suy
    • Ví dụ 1-D
    • Ví dụ 2 chiều
  • tip and thủ thuật ngoại suy
    • ________số 8. sao chép các giá trị đã điền vào bên trái và bên phải của numpy.interp
    • CubicSpline mở rộng các điều kiện biên
    • Thực hiện các tiện ích cận
      • Setup
      • Sử dụng các tiện ích cận đã biết
    • Ngoại suy trong CubicSpline3