『壹』 數字圖像處理——圖像插值
網上有很多介紹插值演算法的,但感覺收獲都不大
介紹三種圖像插值演算法:最近鄰內插,雙線性內插,雙三次內插(雙立方內插)
三次插值即用三階多項式擬合原函數(也應該有其他用途)。假設三次擬合函數為
在matlab中,圖像被定義為一個三維向量,若不考慮圖像的通道數,可以將圖像看作一個二維矩陣處理。matlab圖像矩陣中坐標值映射到二維坐標系中,每一個像素塊對應的是一個點,但實際的像素塊是有一定尺寸的。
在進行雙線性插值和雙三次插值時,需要用坐標值擬合函數,為了簡化計算,總是選取 作為局部坐標系原點,其中 為待插值坐標。
當出現這些情況時,補充這些像素的灰度值為圖像內最相鄰像素塊的灰度值。
進行坐標變換後,選取與內插點 歐式距離最近的像素值進行插值。在程序中,使用將 按照四捨五入的舍入方式選取最近鄰的像素塊。
雙線性內插是線性內插的二維實現,在x維度先進行線性插值,再由得到的值對y維度進行插值。在局部坐標系中,選取 相鄰的四個像素進行雙線性內插。由在數學原理中的推導可知
雙三次內插是三次插值的二維實現。選取與 相鄰的16個像素進行雙三次內插,局部坐標系中x與y坐標范圍均為 。由數學原理中的推到可知
最近鄰插值法的優點是計算量很小,運算速度較快。但它僅使用離待測采樣點最近的像素的灰度值作為該采樣點的灰度值,而沒考慮其他相鄰像素點的影響,因而重新采樣後灰度值有明顯的不連續性,會產生明顯的馬賽克和鋸齒現象。
雙線性插值法效果要好於最近鄰插值,計算量較大。縮放後圖像質量高,基本克服了最近鄰插值灰度值不連續的特點,因為它考慮了待測采樣點周圍四個直接鄰點對該采樣點的相關性影響。但是,此方法未考慮到各鄰點間灰度值變化率的影響, 具有低通濾波器的性質, 從而導致縮放後圖像的高頻分量受到損失, 圖像邊緣在一定程度上變得較為模糊,丟失了一些細節信息。
雙立方插值計算量最大,運算速度慢。雙立方插值用三階函數逼近,不僅考慮到周圍四個直接相鄰像素點灰度值的影響,還考慮到它們灰度值變化率的影響,能夠產生比雙線性插值更為平滑的邊緣,計算精度很高,處理後的圖像細節損失最少,效果最佳。
『貳』 求教三種數字圖像插值演算法
何東健的《數字圖像處理》光碟第六章有前兩種的程序
完整程序已發你郵箱
核心代碼如下:
for(y = 0; y < nNewHeight; y++)
{
//指向新圖像第y行
//注意此處寬度和高度是新圖像的寬度和高度
pNewTemp = pNewBits;
pNewTemp += (nNewHeight - 1 - y) * nNewWidthBytes;
//針對圖像每列進行操作
for(x = 0; x < nNewWidth; x++)
{
//計算該像素在源圖像中的坐標
int y0 = (long) (y / fYZoomRatio + 0.5);
int x0 = (long) (x / fXZoomRatio + 0.5);
//判斷是否在源圖范圍內
if( (x0 >= 0) && (x0 < nOldWidth) &&
(y0 >= 0) && (y0 < nOldHeight))
{
//用雙線性插值
if(bBilinear)
{
unsigned char *pTemp = Interpolation (nOldWidth, nOldHeight,
(float)x0, (float)y0,
nOldWidthBytes, nMovedBits, pOldBits);
//復制像素
memcpy(pNewTemp, pTemp, nMovedBits);
delete [] pTemp ;
}
else
//最近鄰插值
{
//指向源圖像第y0行,第x0個像素
//注意此處寬度和高度應該互換
pOldTemp = pOldBits;
pOldTemp += (nOldHeight - 1 - y0) * nOldWidthBytes;
pOldTemp += x0 * nMovedBits;
//復制像素
memcpy(pNewTemp, pOldTemp, nMovedBits);
}
}
pNewTemp += nMovedBits;
}
}
『叄』 三種插值方法的比較
三種插值方法的比較
最近點陵頃插值
在一維空間中,最近點插值就相當於四捨五入取整。在二維圖像中,像素點的坐標都是整數,該方法就是選取離目標點最近的頌汪亮點。計算方式如下:
假設原圖為A[aw,ah],寬度為aw,高度為ah。目標圖為B[bw,bh],寬度為bw,高度為bh。已知A[aw,ah]的寬度,高度及其中每個點的顏色值,B[bw,bh]中每個點像素值的計算方式如下:
已知Q11,Q21,Q12,Q22,計算P點的野寬值時,需要先由Q11和Q21插值得到R1,由Q12和Q22插值得到R2,再由R1和R2插值得到P。
蘭索斯插值(lanczos)
一維的線性插值,是在目標點的左邊和右邊各取一個點做插值,這兩個點的權重是由線性函數計算得到。而一維的蘭索斯插值是在目標點的左邊和右邊各取四個點做插值,這八個點的權重是由高階函數計算得到。
『肆』 線性插值法計算公式是什麼
公式就是:Y=Y1+(Y2-Y1)×(X-X1)/(X2-X1)。
通俗地講,線性內插法就是利用相似三角形的原理,來計算內插點的數據。
內插法又稱插值法。根據未知函數f(x)在某區間內若干點的函數值,作出在該若干點的函數值與f(x)值相等的特定函數來近似原函數f(x),進而可用此特定函數算出該區間內其他各點的原函數f(x)的近似值,這種方法,稱為內插法。
按特定函數的性質分,有線性內插、非線性內插等;按引數(自變數)個數分,有單內插、雙內插和三內插等。
線性插值是指插值函數為一次多項式的插值方式,其在插值節點上的插值誤差為零。線性插值相比其他插值方式,如拋物線插值,具有簡單、方便的特點。
線性插值的幾何意義即為概述圖中利用過A點和B點的直線來近似表示原函數。線性插值可以用來近似代替原函數,也可以用來計算得到查表過程中表中沒有的數值。
『伍』 什麼情況下會使用灰度插值處理,舉例說明有哪些常用的灰度插值處理方法
需要進行圖像縮放功能情況下會使用灰度插值處理,如數碼相機、圖像處理軟體(如Photoshop);常用的灰度插值處理方法:
1、最臨近插值:即將每一個原像素原封不動地復制映射到擴展後對應多個像素中。這種方法在放大圖像的同時保留了所有的原圖像的所有信息。在傳統圖像插值演算法中,最臨近像素插值較簡單,容易實現,早期的時候應用比較普遍。但是,該方法會在新圖像中產生明顯的鋸齒邊緣和馬賽克現象。
2、雙線性插值:雙線性插值法具有平滑功能,能有效地克服最臨近像素插值的不足,但會退化圖像的高頻部分,使圖像細節變模糊。
3、高階插值:在放大倍數比較高時,高階插值,如雙三次插值和三次樣條插值等比低階插值效果好。
(5)數字圖像中常用的插值方法擴展閱讀:
灰度插值作為對原圖像的像素重新分布,從而來改變像素數量的一種方法。在圖像放大過程中,像素也相應地增加,增加的過程就是「插值」發生作用的過程;
「插值」程序自動選擇信息較好的像素作為增加、彌補空白像素的空間,而並非只使用臨近的像素,所以在放大圖像時,圖像看上去會比較平滑、干凈。不過需要說明的是插值並不能增加圖像信息,盡管圖像尺寸變大,但效果也相對要模糊些,過程可以理解為白酒摻水。
在大多數GIS文獻資料中,區域插值特指數據從一組面(源面)到另一組面(目標面)的重新聚合。例如,人口統計學家經常需要縮減或擴大其數據的行政單位。
如果按縣的級別進行人口統計,人口統計學家可能需要縮減數據以預測人口普查區塊中的人口數量。如果要在大比例下重新劃分區塊,可能需要對一組全新的面進行人口預測。
『陸』 常用的圖像插值演算法有哪三種,有什麼優缺點
JPEG TIFF GIF RAW FPX等
JPEG圖像格式:擴展名是JPG,其全稱為Joint Photograhic Experts Group。它利用一種失真式的圖像壓縮方式將圖像壓縮在很小的儲存空間中,其壓縮比率通常在10:1~40:1之間。這樣可以使圖像佔用較小的空間,所以很適合應用在網頁的圖像中。JPEG格式的圖像主要壓縮的是高頻信息,對色彩的信息保留較好,因此也普遍應用於需要連續色調的圖像中。
TIFF圖像格式:擴展名是TIF,全名是Tagged Image File Format。它是一種非失真的壓縮格式(最高也只能做到2~3倍的壓縮比)能保持原有圖像的顏色及層次,但佔用空間卻很大。例如一個200萬像素的圖像,差不多要佔用6MB的存儲容量,故TIFF常被應用於較專業的用途,如書籍出版、海報等,極少應用於互聯網上。
GIF圖像格式:擴展名是GIF。它在壓縮過程中,圖像的像素資料不會被丟失,然而丟失的卻是圖像的色彩。GIF格式最多隻能儲存256色,所以通常用來顯示簡單圖形及字體。有一些數碼相機會有一種名為Text Mode的拍攝模式,就可以儲存成GIF格式。
FPX圖像格式:擴展名是FPX。它是一個擁有多重解像度的圖像格式,即圖像被儲存成一系列高低不同的解像度,而這種格式的好處是當圖像被放大時仍可保持圖像的質量。另外,修改FPX圖像時只會處理被修改的部分,而不會把整個圖像一並處理,從而減低處理器的負擔,令圖像處理時間減少。
RAW圖像格式:擴展名是RAW。RAW是一種無損壓縮格式,它的數據是沒有經過相機處理的原文件,因此它的大小要比TIFF格式略小。所以,當上傳到電腦之後,要用圖像的Twain界面直接導入成TIFF格式才能處理。