成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 插值算法完全解讀

開發 后端 算法
最近在做時間序列預測時,在突增或者突降的變化劇烈的情況下,擬合參數的效果不好,有用到插值的算法補全一些數據來平滑劇烈變化過程。還有在圖像處理中,也經常有用到插值算法來改變圖像的大小,在圖像超分(Image Super-Resolution)中上采樣也有插值的身影。

[[411126]]

本文轉載自微信公眾號「Python中文社區」,作者wedo實驗君。轉載本文請聯系Python中文社區公眾號。

 1. 什么是插值

最近在做時間序列預測時,在突增或者突降的變化劇烈的情況下,擬合參數的效果不好,有用到插值的算法補全一些數據來平滑劇烈變化過程。還有在圖像處理中,也經常有用到插值算法來改變圖像的大小,在圖像超分(Image Super-Resolution)中上采樣也有插值的身影。

插值(interpolation),顧名思義就是插入一些新的數據,當然這些值是根據已有數據生成。插值算法有很多經典算法, 本文分享如下:

  • 線性插值
  • 雙線性插值
  • 雙三次插值bicubic interpolation

2. 插值算法原理和實現

2.1 線性插值

線性插值是最簡單的插值算法。如下圖已知(x0, y0) (x1, y1),在x處插值一點(x, y)。

可以通過簡單幾何知識來推出公式

實現上直接套公式,如果想插值多個點,可以利用線性回歸的方式。

  1. import os 
  2. import numpy as np 
  3. from sklearn.linear_model import LinearRegression 
  4. def linear_interpolation(data, inter_num=4): 
  5.     clf = LinearRegression() 
  6.     X = np.array([[1], [inter_num+2]]) 
  7.     y = data 
  8.     clf.fit(X, y) 
  9.     inter_values = clf.predict(np.array([ [i+2] for i in range(inter_num)])) 
  10.     return inter_values 
  11. data = [[10], [20]] 
  12. linear_interpolation(data, 1) 
  13. # array([[15.]]) 
  14. def manual_linear_interpolation(x0, y0, x1, y1, x): 
  15.     return y0+(x-x0)*(y1-y0)/(x1-x0) 
  16. manual_linear_interpolation(1, 10, 3, 20, 2) 
  17. # 15.0 

線性插值算法經常用在平滑數據上,也用在缺失值預處理中。

2.2 雙線性插值

雙線性插值是在兩個方向上同時進行線性插值,經常用在圖像處理中。雙線性插值是已知2*2個點,插值生成一個點的過程。

如下圖所示,雙線性插值已知(x0, y1)(x0, y0)(x1, y1)(x1, y0)4個點,插值計算(x, y)。

  • 先插值生成(x, y1)(x, y0)

  • 在插值生成(x, y)

  1. import cv2 
  2. lean_img = cv2.imread('./lena.jpg'
  3. lena_x2 = cv2.resize(lean_img, (0, 0), fx=2, fy=2, interpolation=cv2.INTER_LINEAR) 

2.3 雙三次插值

雙線性插值利用22個點插值生成一個新的點,而雙三次插值利用44個點來插值一個新的點。插值的過程就是如何估計aij, aij可以認為是16個點對插值點的影響因子。

影響因子設計來自于Cubic Convolution Interpolation For Digital Image Processing,

以下為Bicubic函數

  1. import cv2 
  2. lean_img = cv2.imread('./lena.jpg'
  3. lena_x2_cubic = cv2.resize(lean_img, (0, 0), fx=2, fy=2, interpolation=cv2.INTER_CUBIC) 

左邊為雙線性插值,右邊有雙三次插值,可以看出雙三次插值效果好,雙線性插值更平滑一點,清晰度不足。

3. 總結

本文介紹了三種常見的插值算法以及在數字圖像處理中的應用。總結如下:

  • 線性插值:通過2點插值新的點,可以利用線性回歸計算插值點
  • 雙線性插值:通過4個點插值新的點
  • 雙三次插值:通過16個點插值新的點,插值權重利用bicubic函數

作者簡介:wedo實驗君, 數據分析師;熱愛生活,熱愛寫作

 

責任編輯:武曉燕 來源: Python中文社區
相關推薦

2022-09-30 15:35:47

json 文件前端開源

2017-01-12 14:52:03

JVMFinalRefere源碼

2021-04-18 20:49:03

Pyecharts圖表 組件

2017-01-11 14:02:32

JVM源碼內存

2020-05-26 18:50:46

JVMAttachJava

2021-08-13 11:10:32

OpenPyXLExcelPython

2021-12-30 23:57:29

插值方式Github

2013-11-12 17:38:49

飛康CDPNSS

2023-08-07 15:49:59

CSS顏色插值算法

2017-01-11 14:19:26

JVM源碼All

2010-02-06 16:59:19

C++ kmp算法模板

2022-09-19 14:25:35

JSON壓縮算法

2021-07-11 18:06:18

緩存過期淘汰

2023-02-13 12:15:41

自動駕駛算法

2009-02-25 09:05:09

路由算法路由器

2011-04-19 10:45:44

路由算法

2021-12-02 18:05:21

Android Interpolato動畫

2023-03-29 07:36:32

鏈表頭插尾插

2010-09-15 13:50:04

CSSposition屬性

2021-11-25 00:04:16

C# 插值字符串
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费视频在线观看 | 欧美日韩久| 色综合视频 | 欧美一区二区三区免费在线观看 | 国产精品欧美一区二区 | 精品国产一区二区在线 | 九九99九九精彩46 | 久久久久久久国产精品 | 毛片久久久 | 特一级黄色毛片 | 操操日| 黄色大片在线播放 | 我要看免费一级毛片 | 日韩精品极品视频在线观看免费 | 福利片在线观看 | 中文字幕一区二区三区乱码图片 | 亚洲视频免费观看 | 久久丝袜视频 | 亚洲天堂男人的天堂 | 特级黄一级播放 | 久久久噜噜噜www成人网 | 成人毛片在线视频 | 九九九视频在线观看 | 在线欧美亚洲 | 欧美人成在线视频 | 精品中文字幕一区二区 | 日韩免费视频 | 一级特黄在线 | 日韩精品在线观看一区二区 | 天天操 夜夜操 | 美国一级片在线观看 | 亚洲天天干| 人人爽日日躁夜夜躁尤物 | 91看片视频| av网站在线免费观看 | 国产精品久久久久久亚洲调教 | 看羞羞视频 | 波多野吉衣久久 | yiren22 亚洲综合 | 久久亚洲国产精品 | 国产精品欧美一区二区三区不卡 |