當前位置:首頁 » 操作系統 » 二維插值演算法

二維插值演算法

發布時間: 2023-01-19 03:33:03

1. MATLAB中三種差值法怎樣編程

http://wenku..com/view/4b8beb2dcfc789eb172dc896.html?st=1

http://wenku..com/view/49a35f050740be1e650e9aac.html?st=1

http://wenku..com/view/97931e353968011ca30091ac.html

http://wenku..com/view/702346f8910ef12d2af9e7ad.html

2. 如何用matlab實現二維插值

matlab中主要是靠interp2命令來實現二維插值,
該命令的格式如下。
z1=interp2(x0,y0,z0,x1,y1,'method')
功能介紹:根據已知的數據(x0,y0,z0),用method方法進行插值,然後計算(x1,y1)對應的值z1.
參數介紹及其注意事項:
x0,y0是已知的原始數據,z0是函數值;x1,y1是插值點的自變數坐標向量;『method『是用來選擇插值演算法的,它可以取』linear『(線性),
』cubic『(三次插值)、』nearst『(最近插值)。

3. 雙三次樣條插值

在數值分析這個數學分支中,雙三次插值(英語:Bicubic interpolation)是二維空間中最常用的插值方法。在這種方法中,函數f在點 (x,y) 的值可以通過矩形網格中最近的十六個采樣點的加權平均得到,在這里需要使用兩個多項式插值三次函數,每個方向使用一個。

計算系數的過程依賴於插值數據的特性。如果已知插值函數的導數,常用的方法就是使用四個頂點的高度以及每個頂點的三個導數。一階導數與表示 x 與 y 方向的表面斜率,二階相互導數表示同時在 x 與 y 方向的斜率。這些值可以通過分別連續對 x 與 y 向量取微分得到。對於網格單元的每個頂點,將局部坐標(0,0, 1,0, 0,1 和 1,1) 帶入這些方程,再解這 16 個方程。

After bilinear interpolation, perhaps the most widely used technique is that of bicubic interpolation, certainly by computational geometers, if not GIS users. This makes use of the 16-term function:


Bicubic interpolation is the lowest order 2-D interpolation procere that maintains the continuity of the function and its first derivatives (both normal and tangential) across cell boundaries (Russell, 1995). As we want the function to be valid over the grid cell of the interpolated point, we need to consider which 16 values to use to derive the coefficients. The common approach is to use the height at the four vertices, together with three derivatives at each vertex. The first derivativesh'xandh'yexpress the slope of the surface in thexandydirections, while the second (cross) derivativeh''xyrepresents the slope in bothxandy. In terms of solving the coefficients of [9], these values can be expressed by differentiating thexandyvectors independently, and then consecutively. For each of the vertices of the grid cell, the local coordinates (at 0,0, 1,0, 0,1 and 1,1) can be input into these equations to generate the 16 equations to solve [9]. Press et al., (1988) present algorithms for piecewise cubic, bicubic polynomial and bicubic spline interpolation. Methods for determining the slope estimates or partial derivatives are presented in Section 3.10.

A simpler approach described by Schut (1976) is to use the 12-term incomplete bicubic polynomial:


In this instance the cross-derivativeh''xyis not required, leaving the four corner elevations and eight first-order derivatives sufficient to compute the parameters. While the total surface is continuous, it is only smooth at the nodes.

4. 雙線性插值原理的原理

雙線性插值原理,是一種數學原理。


原理


簡單來說

原來的數值序列:0,10,20,30,40

線性插值一次為:0,5,10,15,20,25,30,35,40

即認為其變化(增減)是線形的,可以在坐標圖上畫出一條直線

在數碼相機技術中,這些數值可以代表組成一張照片的不同像素點的色彩、色度等指標。

為了方便理解,先考慮一維情況下的線性插值

對於一個數列c,我們假設c[a]到c[a+1]之間是線性變化的

那麼對於浮點數x(a<=x<a+1),c(x)=c[a+1]*(x-a)+c[a]*(1+a-x);


雙線性插值

雙線性插值作為數值分析中的一種插值演算法,廣泛應用在信號處理,數字圖像和視頻處理等方面。


把這種插值方式擴展到二維情況。


對於一個二維數組c,我們假設對於任意一個浮點數i,c(a,i)到c(a+1,i)之間是線性變化的,c(i,b)到c(i,b+1)之間也是線性變化的(a,b都是整數)


那麼對於浮點數的坐標(x,y)滿足(a<=x<a+1,b<=y<b+1),我們可以先分別求出c(x,b)和c(x,b+1):


c(x,b) = c[a+1][b]*(x-a)+c[a][b]*(1+a-x);


c(x,b+1) = c[a+1][b+1]*(x-a)+c[a][b+1]*(1+a-x);


好,現在已經知道c(x,b)和c(x,b+1)了,而根據假設c(x,b)到c(x,b+1)也是線性變化的,所以:


c(x,y) = c(x,b+1)*(y-b)+c(x,b)*(1+b-y)


這就是雙線性插值。

5. MATLAB中的meshgrid具體實例

meshgrid是MATLAB中用於生成網格采樣點的函數。在使用MATLAB進行3-D圖形繪制方面以及畫矢量圖方面有著廣泛的應用。下面就來介紹一下該命令。

6. Matlab中插值函數

MATLAB中的插值函數為interp1,其調用格式為: yi= interp1(x,y,xi,'method') 其中x,y為插值點,yi為在被插值點xi處的插值結果;x,y為向量, 'method'表示採用的插值方法,MATLAB提供的插值方法有幾種: 'method'是最鄰近插值, 'linear'線性插值; 'spline'三次樣條插值; 'cubic'立方插值.預設時表示線性插值。 注意:所有的插值方法都要求x是單調的,並且xi不能夠超過x的范圍。 例:在一 天24小時內,從零點開始每間隔2小時測得的環境溫度數據分別為 12,9,9,10,18 ,24,28,27,25,20,18,15,13 問題:推測中午12點(即13點)時的溫度. 功能 一維數據插值(表格查找)。該命令對數據點之間計算內插值。它找出一元函數f(x)在中間點的數值。其中函數f(x)由所給數據決定。 x:原始數據點 Y:原始數據點 xi:插值點 Yi:插值點 (1)yi = interp1(x,y,xi,method) 用指定的演算法計算插值: 』nearest』:最近鄰點插值,直接完成計算; 』linear』:線性插值(預設方式),直接完成計算; 』spline』:三次樣條函數插值。 』cubic』:該方法保留單調性與數據的外形; 功能 二維數據內插值 (1)ZI = interp2(X,Y,Z,XI,YI,method) 返回矩陣ZI,其元素包含對應於參量XI 與YI(可以是向量、或同型矩陣) 的元素, 即Zi(i,j) ←[Xi(i,j),yi(i,j)]。用戶可以輸入行向量和列向量Xi 與Yi,此時,輸出向量Zi 與矩陣meshgrid(xi,yi)是同型的。 (2)ZI = interp2(Z,XI,YI) 預設地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一種情形進行計算。 用指定的演算法method 計算二維插值: 』linear』:雙線性插值演算法(預設演算法); 』nearest』:最臨近插值; 』spline』:三次樣條插值; 』cubic』:雙三次插值。 (4)VI = interp3(X,Y,Z,V,XI,YI,ZI,method) 找出由參量X,Y,Z決定的三元函數V=V(X,Y,Z)在點(XI,YI,ZI)的值。 %用指定的演算法method 作插值計算: 『linear』:線性插值(預設演算法); 『cubic』:三次插值; 『spline』:三次樣條插值; 『nearest』:最鄰近插值。 功能 數據格點 (1)ZI = griddata(x,y,z,XI,YI,method) 用二元函數z=f(x,y)的曲面擬合有不規則的數據向量x,y,z。griddata 將返回曲面z 在點(XI,YI)處的插值。曲面總是經過這些數據點(x,y,z)的輸入參量(XI,YI)通常是規則的格點(像用命令meshgrid 生成的一樣)。 用指定的演算法method 計算: 『linear』:基於三角形的線性插值(預設演算法); 『cubic』: 基於三角形的三次插值; 『nearest』:最鄰近插值法; 『v4』:MATLAB 4 中的griddata 演算法。 功能 三次樣條數據插值 格式 (1)yy = spline(x,y,xx) 功能 生成用於畫三維圖形的矩陣數據 格式 [X,Y] = meshgrid(x,y) 將由向量x,y(可以是不同方向的)指定的區域[min(x),max(x) , min(y) , max(y)] 用直線x=x(i),y=y(j) ( i=1,2,…,length(x) ,j=1,2,…,length(y))進行劃分。這樣,得到了length(x)*length(y)個點, 這些點的橫坐標用矩陣X 表示,X 的每個行向量與向量x 相同;這些點的縱坐標用矩陣Y 表示,Y 的每個列向量與向量y 相同。其中X,Y可用於計算二元函數z=f(x,y)與三維圖形中xy 平面矩形定義域的劃分或曲面作圖。 [X,Y] = meshgrid(x) %等價於[X,Y]=meshgrid(x,x)。 [X,Y,Z] = meshgrid(x,y,z) %生成三維陣列X,Y,Z,用於計算三元函數v=f(x,y,z)或三維容積圖。

7. 數字圖像處理——圖像插值

網上有很多介紹插值演算法的,但感覺收獲都不大

介紹三種圖像插值演算法:最近鄰內插,雙線性內插,雙三次內插(雙立方內插)

三次插值即用三階多項式擬合原函數(也應該有其他用途)。假設三次擬合函數為

在matlab中,圖像被定義為一個三維向量,若不考慮圖像的通道數,可以將圖像看作一個二維矩陣處理。matlab圖像矩陣中坐標值映射到二維坐標系中,每一個像素塊對應的是一個點,但實際的像素塊是有一定尺寸的。

在進行雙線性插值和雙三次插值時,需要用坐標值擬合函數,為了簡化計算,總是選取 作為局部坐標系原點,其中 為待插值坐標。

當出現這些情況時,補充這些像素的灰度值為圖像內最相鄰像素塊的灰度值。

進行坐標變換後,選取與內插點 歐式距離最近的像素值進行插值。在程序中,使用將 按照四捨五入的舍入方式選取最近鄰的像素塊。

雙線性內插是線性內插的二維實現,在x維度先進行線性插值,再由得到的值對y維度進行插值。在局部坐標系中,選取 相鄰的四個像素進行雙線性內插。由在數學原理中的推導可知

雙三次內插是三次插值的二維實現。選取與 相鄰的16個像素進行雙三次內插,局部坐標系中x與y坐標范圍均為 。由數學原理中的推到可知

最近鄰插值法的優點是計算量很小,運算速度較快。但它僅使用離待測采樣點最近的像素的灰度值作為該采樣點的灰度值,而沒考慮其他相鄰像素點的影響,因而重新采樣後灰度值有明顯的不連續性,會產生明顯的馬賽克和鋸齒現象。

雙線性插值法效果要好於最近鄰插值,計算量較大。縮放後圖像質量高,基本克服了最近鄰插值灰度值不連續的特點,因為它考慮了待測采樣點周圍四個直接鄰點對該采樣點的相關性影響。但是,此方法未考慮到各鄰點間灰度值變化率的影響, 具有低通濾波器的性質, 從而導致縮放後圖像的高頻分量受到損失, 圖像邊緣在一定程度上變得較為模糊,丟失了一些細節信息。

雙立方插值計算量最大,運算速度慢。雙立方插值用三階函數逼近,不僅考慮到周圍四個直接相鄰像素點灰度值的影響,還考慮到它們灰度值變化率的影響,能夠產生比雙線性插值更為平滑的邊緣,計算精度很高,處理後的圖像細節損失最少,效果最佳。

8. [求助]fortran如何進行二維插值

你說的 應該屬於平滑問題 在f里不好弄 1維好說 你說的是2維 3次樣條是最好的 不過 你可以用 matlab 其中裡面的庫函數interp2()中的spline參數就可以很好的完成你的要求 但是我現在對於interp2的源碼還沒有,所以對於他是怎麼平滑的還是不清楚 希望可以幫上你

9. 二維三次樣條插值

這是用在平面內內插數值的一種演算法。利用平面內一些點的平面分布及已知數據,根據這些點在平面內的二維坐標,採用數學方法求出待求點的數值。
三次樣條插值只是這種演算法中的一種。
這種數學方法多用於繪制地圖等高線、氣壓等壓線、水溫線等領域

10. 數據插值的matlab實現,插值後結果是這樣的,是什麼錯誤急需答案

看看這個能不能幫到你:

Matlab中插值函數匯總和使用說明 :

MATLAB中的插值函數為interp1,其調用格式為:

yi= interp1(x,y,xi,'method')

其中x,y為插值點,yi為在被插值點xi處的插值結果;x,y為向量, 'method'表示採用的插值方法,

MATLAB提供的插值方法有幾種:

'nearest'是最鄰近插值, 'linear'線性插值; 'spline'三次樣條插值; 'cubic'立方插值.預設時表示線性插值。

注意:所有的插值方法都要求x是單調的,並且xi不能夠超過x的范圍。

例如:在一 天24小時內,從零點開始每間隔2小時測得的環境溫度數據分別為

12,9,9,10,18 ,24,28,27,25,20,18,15,13,

推測中午12點(即13點)時的溫度.

x=0:2:24;
y=[12 9 9 10 18 24 28 27 25 20 18
15 13];

a=13;
y1=interp1(x,y,a,'spline')

結果為: 27.8725

若要得到一天24小時的溫度曲線,則:

xi=0:1/3600:24;

yi=interp1(x,y,xi, 'spline');

plot(x,y,'o' ,xi,yi)

命令1
interp1
功能
一維數據插值(表格查找)。該命令對數據點之間計算內插值。它找出一元函數f(x)在中間點的數值。其中函數f(x)由所給數據決定。
x:原始數據點
Y:原始數據點
xi:插值點
Yi:插值點
格式
(1)yi = interp1(x,Y,xi)
返回插值向量yi,每一元素對應於參量xi,同時由向量x
與Y 的內插值決定。參量x 指定數據Y 的點。
若Y
為一矩陣,則按Y 的每列計算。yi 是階數為length(xi)*size(Y,2)的輸出矩陣。
(2)yi = interp1(Y,xi)
假定x=1:N,其中N
為向量Y 的長度,或者為矩陣Y 的行數。
(3)yi = interp1(x,Y,xi,method)
用指定的演算法計算插值:
』nearest』:最近鄰點插值,直接完成計算;
』linear』:線性插值(預設方式),直接完成計算;
』spline』:三次樣條函數插值。對於該方法,命令interp1
調用函數spline、ppval、mkpp、umkpp。這些命令生成一系列用於分段多項式操作的函數。命令spline
用它們執行三次樣條函數插值;
』pchip』:分段三次Hermite
插值。對於該方法,命令interp1 調用函數pchip,用於對向量x 與y 執行分段三次內插值。該方法保留單調性與數據的外形;
』cubic』:與』pchip』操作相同;
』v5cubic』:在MATLAB
5.0 中的三次插值。
對於超出x
范圍的xi 的分量,使用方法』nearest』、』linear』、』v5cubic』的插值演算法,相應地將返回NaN。對其他的方法,interp1
將對超出的分量執行外插值演算法。
(4)yi = interp1(x,Y,xi,method,'extrap')
對於超出x
范圍的xi 中的分量將執行特殊的外插值法extrap。
(5)yi = interp1(x,Y,xi,method,extrapval)
確定超出x
范圍的xi 中的分量的外插值extrapval,其值通常取NaN 或0。
例1

>>x = 0:10; y =
x.*sin(x);
>>xx = 0:.25:10; yy =
interp1(x,y,xx);
>>plot(x,y,'kd',xx,yy)

例2

>> year =
1900:10:2010;
>> proct = [75.995
91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505
249.633 256.344 267.893
];
>>p1995 =
interp1(year,proct,1995)
>>x =
1900:1:2010;
>>y =
interp1(year,proct,x,'pchip');
>>plot(year,proct,'o',x,y)

插值結果為:

p1995 =
252.9885

命令2
interp2
功能
二維數據內插值(表格查找)
格式
(1)ZI
= interp2(X,Y,Z,XI,YI)
返回矩陣ZI,其元素包含對應於參量XI
與YI(可以是向量、或同型矩陣) 的元素, 即Zi(i,j) ←[Xi(i,j),yi(i,j)]。用戶可以輸入行向量和列向量Xi 與Yi,此時,輸出向量Zi
與矩陣meshgrid(xi,yi)是同型的。同時取決於由輸入矩陣X、Y 與Z 確定的二維函數Z=f(X,Y)。參量X 與Y
必須是單調的,且相同的劃分格式,就像由命令meshgrid 生成的一樣。若Xi與Yi 中有在X 與Y范圍之外的點,則相應地返回nan(Not a
Number)。
(2)ZI
= interp2(Z,XI,YI)
預設地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一種情形進行計算。
(3)ZI
= interp2(Z,n)
作n
次遞歸計算,在Z 的每兩個元素之間插入它們的二維插值,這樣,Z 的階數將不斷增加。interp2(Z)等價於interp2(z,1)。
(4)ZI
= interp2(X,Y,Z,XI,YI,method)
用指定的演算法method
計算二維插值:
』linear』:雙線性插值演算法(預設演算法);
』nearest』:最臨近插值;
』spline』:三次樣條插值;
』cubic』:雙三次插值。

例3:

>>[X,Y] =
meshgrid(-3:.25:3);
>>Z = peaks(X,Y);
>>[XI,YI] =
meshgrid(-3:.125:3);
>>ZZ =
interp2(X,Y,Z,XI,YI);
>>surfl(X,Y,Z);hold
on;
>>surfl(XI,YI,ZZ+15)
>>axis([-3 3 -3 3 -5
20]);shading flat
>>hold
off

例4:

>>years =
1950:10:1990;
>>service =
10:10:30;
>>wage = [150.697
199.592 187.625
179.323 195.072 250.287
203.212 179.092 322.767
226.505 153.706 426.730
249.633 120.281
598.243];
>>w =
interp2(service,years,wage,15,1975)

插值結果為:

w =
190.6288

命令3
interp3
功能
三維數據插值(查表)
格式
(1)VI
= interp3(X,Y,Z,V,XI,YI,ZI)
找出由參量X,Y,Z決定的三元函數V=V(X,Y,Z)在點(XI,YI,ZI)的值。參量XI,YI,ZI
是同型陣列或向量。若向量參量XI,YI,ZI 是不同長度,不同方向(行或列)的向量,這時輸出參量VI 與Y1,Y2,Y3 為同型矩陣。其中Y1,Y2,Y3
為用命令meshgrid(XI,YI,ZI)生成的同型陣列。若插值點(XI,YI,ZI)中有位於點(X,Y,Z)之外的點,則相應地返回特殊變數值NaN。
(2)VI
= interp3(V,XI,YI,ZI)
預設地,
X=1:N ,Y=1:M, Z=1:P ,其中,[M,N,P]=size(V),再按上面的情形計算。
(3)VI
= interp3(V,n)
作n
次遞歸計算,在V 的每兩個元素之間插入它們的三維插值。這樣,V 的階數將不斷增加。interp3(V)等價於interp3(V,1)。
(4)VI
= interp3(......,method) %用指定的演算法method 作插值計算:
『linear』:線性插值(預設演算法);
『cubic』:三次插值;
『spline』:三次樣條插值;
『nearest』:最鄰近插值。
說明
在所有的演算法中,都要求X,Y,Z 是單調且有相同的格點形式。當X,Y,Z
是等距且單調時,用演算法』*linear』,』*cubic』,』*nearest』,可得到快速插值。

熱點內容
水電煤演算法 發布:2025-07-04 18:36:44 瀏覽:328
天翼視訊緩存文件夾 發布:2025-07-04 18:36:43 瀏覽:96
unix網路編程第2卷 發布:2025-07-04 18:33:41 瀏覽:780
編譯歷史 發布:2025-07-04 18:23:01 瀏覽:851
空調壓縮機種類 發布:2025-07-04 18:13:58 瀏覽:242
中國有ip6伺服器嗎 發布:2025-07-04 17:58:56 瀏覽:726
第六章編譯原理答案 發布:2025-07-04 17:37:55 瀏覽:40
php內存優化 發布:2025-07-04 17:25:54 瀏覽:664
威綸觸摸屏如何設置時間限制密碼 發布:2025-07-04 17:25:50 瀏覽:418
python列表的遍歷 發布:2025-07-04 17:24:20 瀏覽:24