導航:首頁 > 源碼編譯 > 最臨近插值演算法

最臨近插值演算法

發布時間:2023-01-04 10:30:06

『壹』 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

『貳』 如何用 java 以雙線性內插法去放大一張圖片

圖像的縮放很好理解,就是像的放大和縮小。傳統的繪畫工具中,有一種叫做「放大尺」的繪畫工具,畫家常用它來放大圖畫。當然,在計算機上,我們不再需要用放大尺去放大或縮小圖像了,把這個工作交給程序來完成就可以了。下面就來講講計算機怎麼來放大縮小圖象;在本文中,我們所說的圖像都是指點陣圖,也就是用一個像素矩陣來描述圖像的方法,對於另一種圖像:用函數來描述圖像的矢量圖,不在本文討論之列。
越是簡單的模型越適合用來舉例子,我們就舉個簡單的圖像:3X3 的256級灰度圖,也就是高為3個象素,寬也是3個象素的圖像,每個象素的取值可以是 0-255,代表該像素的亮度,255代表最亮,也就是白色,0代表最暗,即黑色。假如圖像的象素矩陣如下圖所示(這個原始圖把它叫做源圖,Source):
234 38 22
67 44 12
89 65 63
這個矩陣中,元素坐標(x,y)是這樣確定的,x從左到右,從0開始,y從上到下,也是從零開始,這是圖象處理中最常用的坐標系,就是這樣一個坐標:
--------------------->X
|
|
|
|

|
∨Y
如果想把這副圖放大為 4X4大小的圖像,那麼該怎麼做呢?那麼第一步肯定想到的是先把4X4的矩陣先畫出來再說,好了矩陣畫出來了,如下所示,當然,矩陣的每個像素都是未知數,等待著我們去填充(這個將要被填充的圖的叫做目標圖,Destination):
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?

然後要往這個空的矩陣裡面填值了,要填的值從哪裡來來呢?是從源圖中來,好,先填寫目標圖最左上角的象素,坐標為(0,0),那麼該坐標對應源圖中的坐標可以由如下公式得出:
srcX=dstX* (srcWidth/dstWidth) , srcY = dstY * (srcHeight/dstHeight)
好了,套用公式,就可以找到對應的原圖的坐標了(0*(3/4),0*(3/4))=>(0*0.75,0*0.75)=>(0,0)
,找到了源圖的對應坐標,就可以把源圖中坐標為(0,0)處的234象素值填進去目標圖的(0,0)這個位置了。
接下來,如法炮製,尋找目標圖中坐標為(1,0)的象素對應源圖中的坐標,套用公式:
(1*0.75,0*0.75)=>(0.75,0)
結果發現,得到的坐標裡面竟然有小數,這可怎麼辦?計算機里的圖像可是數字圖像,象素就是最小單位了,象素的坐標都是整數,從來沒有小數坐標。這時候採用的一種策略就是採用四捨五入的方法(也可以採用直接舍掉小數位的方法),把非整數坐標轉換成整數,好,那麼按照四捨五入的方法就得到坐標(1,0),完整的運算過程就是這樣的:
(1*0.75,0*0.75)=>(0.75,0)=>(1,0)
那麼就可以再填一個象素到目標矩陣中了,同樣是把源圖中坐標為(1,0)處的像素值38填入目標圖中的坐標。

依次填完每個象素,一幅放大後的圖像就誕生了,像素矩陣如下所示:
234 38 22 22
67 44 12 12

89 65 63 63
這種放大圖像的方法叫做最臨近插值演算法,這是一種最基本、最簡單的圖像縮放演算法,效果也是最不好的,放大後的圖像有很嚴重的馬賽克,縮小後的圖像有很嚴重的失真;效果不好的根源就是其簡單的最臨近插值方法引入了嚴重的圖像失真,比如,當由目標圖的坐標反推得到的源圖的的坐標是一個浮點數的時候,採用了四捨五入的方法,直接採用了和這個浮點數最接近的象素的值,這種方法是很不科學的,當推得坐標值為 0.75的時候,不應該就簡單的取為1,既然是0.75,比1要小0.25 ,比0要大0.75 ,那麼目標象素值其實應該根據這個源圖中虛擬的點四周的四個真實的點來按照一定的規律計算出來的,這樣才能達到更好的縮放效果。雙線型內插值演算法就是一種比較好的圖像縮放演算法,它充分的利用了源圖中虛擬點四周的四個真實存在的像素值來共同決定目標圖中的一個像素值,因此縮放效果比簡單的最鄰近插值要好很多。
雙線性內插值演算法描述如下:
對於一個目的像素,設置坐標通過反向變換得到的浮點坐標為(i+u,j+v) (其中i、j均為浮點坐標的整數部分,u、v為浮點坐標的小數部分,是取值[0,1)區間的浮點數),則這個像素得值 f(i+u,j+v) 可由原圖像中坐標為 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應的周圍四個像素的值決定,即:

f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1) 公式1

其中f(i,j)表示源圖像(i,j)處的的像素值,以此類推。

比如,象剛才的例子,現在假如目標圖的象素坐標為(1,1),那麼反推得到的對應於源圖的坐標是(0.75 , 0.75), 這其實只是一個概念上的虛擬象素,實際在源圖中並不存在這樣一個象素,那麼目標圖的象素(1,1)的取值不能夠由這個虛擬象素來決定,而只能由源圖的這四個象素共同決定:(0,0)(0,1)(1,0)(1,1),而由於(0.75,0.75)離(1,1)要更近一些,那麼(1,1)所起的決定作用更大一些,這從公式1中的系數uv=0.75×0.75就可以體現出來,而(0.75,0.75)離(0,0)最遠,所以(0,0)所起的決定作用就要小一些,公式中系數為(1-u)(1-v)=0.25×0.25也體現出了這一特點;

經典,採納吧

『叄』 什麼情況下會使用灰度插值處理,舉例說明有哪些常用的灰度插值處理方法

需要進行圖像縮放功能情況下會使用灰度插值處理,如數碼相機、圖像處理軟體(如Photoshop);常用的灰度插值處理方法:

1、最臨近插值:即將每一個原像素原封不動地復制映射到擴展後對應多個像素中。這種方法在放大圖像的同時保留了所有的原圖像的所有信息。在傳統圖像插值演算法中,最臨近像素插值較簡單,容易實現,早期的時候應用比較普遍。但是,該方法會在新圖像中產生明顯的鋸齒邊緣和馬賽克現象。

2、雙線性插值:雙線性插值法具有平滑功能,能有效地克服最臨近像素插值的不足,但會退化圖像的高頻部分,使圖像細節變模糊。

3、高階插值:在放大倍數比較高時,高階插值,如雙三次插值和三次樣條插值等比低階插值效果好。

(3)最臨近插值演算法擴展閱讀:

灰度插值作為對原圖像的像素重新分布,從而來改變像素數量的一種方法。在圖像放大過程中,像素也相應地增加,增加的過程就是「插值」發生作用的過程;

「插值」程序自動選擇信息較好的像素作為增加、彌補空白像素的空間,而並非只使用臨近的像素,所以在放大圖像時,圖像看上去會比較平滑、干凈。不過需要說明的是插值並不能增加圖像信息,盡管圖像尺寸變大,但效果也相對要模糊些,過程可以理解為白酒摻水。

在大多數GIS文獻資料中,區域插值特指數據從一組面(源面)到另一組面(目標面)的重新聚合。例如,人口統計學家經常需要縮減或擴大其數據的行政單位。

如果按縣的級別進行人口統計,人口統計學家可能需要縮減數據以預測人口普查區塊中的人口數量。如果要在大比例下重新劃分區塊,可能需要對一組全新的面進行人口預測。

『肆』 MATLAB中的meshgrid具體實例

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

『伍』 插值是什麼意思

插值(Interpolation),有時也稱為「重置樣本」,是在不生成像素的情況下增加圖像像素大小的一種方法,在周圍像素色彩的基礎上用數學公式計算丟失像素的色彩。有些相機使用插值,人為地增加圖像的解析度
在掃描過程中,根據所需的已知數值製作出估計的像素值,這一過程叫做插值。當我們要求掃描解析度和放大率與掃描儀的光學解析度和1:1的放大率不同時,掃描儀必須做出某種形式的插值和縮放。

在掃描時,插值可以用來減少或增大信息量。如果碰巧選擇了一個准確的數值,它與掃描儀光學解析度正好成分數或倍數關系,那麼相對來說,增值插值和減值插值就變得簡單多了。

如將把600dpiX600dpi的信息轉換成300dpiX300dpi,或者通過估算一些像素值,輸出1200dpiX1200dpi的圖像。將600dpiX600dpi掃描轉換成300dpiX300dpi要拋棄一些像素才能完成,模仿1200dpiX1200dpi的解析度則涉及到要復制更多的像素。如果要得到其它的解析度,掃描儀不只是拋棄或復制像素,而且要檢查可能得到的像素,並根據在原取樣點找到的數據製作新像素。

在掃描中插值與在Photoshop中重新取樣(在Photoshop中放大或縮小圖像,或改變圖像的解析度)是相同的。因此可以選擇是在圖像輸入Photoshop之前,在掃描儀內插值或直接按比例縮放圖像,還是等到圖像輸入Photoshop後,對圖像進行重新取樣處理。前者可能比較快,尤其是在處理大型圖像時更是如此。而後者能讓我們更好的控制對圖像的這種處理

『陸』 什麼是插值

「插值」最初是電腦的術語,現在引用到數碼圖像的處理上。即圖像放大時,像素也相應地增加,增加的過程就是「插值」程序自動選擇信息較好的像素作為增加的像素,而並非只使用臨近的像素,所以在放大圖像時,圖像看上去會比較平滑、干凈。不過需要說明的是插值並不能增加圖像信息。通俗地講插值的效果實際就是給一杯香濃的咖啡兌了一些白開水。 ★ 常見的插值方法及其原理 1. 最臨近像素插值:圖像出現了馬賽克和鋸齒等明顯走樣的原因。不過最臨近插值法的優點就是速度快。 2. 線性插值(Linear):線性插值速度稍微要慢一點,但效果要好不少。所以線性插值是個不錯的折中辦法。 3. 其他插值方法:立方插值,樣條插值等等,它們的目的是試圖讓插值的曲線顯得更平滑,為了達到這個目的,它們不得不利用到周圍若干范圍內的點,不過計算量顯然要比前兩種大許多。 在以上的基礎上,有的軟體還發展了更復雜的改進的插值方式譬如S-SPline、Turbo Photo等。它們的目的就是使邊緣的表現更完美。 ★ 評斷插值結果的好壞 第一個標准:走樣現象的輕重。放大圖像的時候,要看邊緣是否產生了鋸齒,縮小圖像的時候,看看是否有干擾條紋,邊緣是否平順。第二個標准:邊緣是否清晰?同樣貼兩個例子,左邊是差的演算法,右邊是好的演算法(如圖1)。第三個標准:過渡帶的層次感細節感怎麼樣?貼兩個例子,左邊是差的演算法,右邊是好的演算法(如圖2)。 插值的今生 ★ 是否有必要 購買插值數碼相機 看了上面的原理介紹,相信大家應該已經了解了插值實際上就是一種技術,它能給我們的照片信息提供一些美化和提高,但是這樣的技術提升是有限制的,使用320×240解析度的相機是不可能代替百萬像素的數碼相機的,雖然我們可以使用Photoshop將解析度為320×240的照片放大成1280×960,但它的照片真實信息仍然只有320×240。其餘增加的可都是「白開水」。]

閱讀全文

與最臨近插值演算法相關的資料

熱點內容
為什麼小度APP一直連不上網路 瀏覽:163
pdf模板java 瀏覽:40
現代瑞納的壓縮比 瀏覽:128
網吧里的ftp伺服器有什麼用 瀏覽:872
程序員年終總結工作體會 瀏覽:153
pdf可以直接列印 瀏覽:661
android刷wp8 瀏覽:912
歷史地圖集pdf 瀏覽:925
快手app極速版怎麼掃碼 瀏覽:805
qq程序員玩法 瀏覽:95
1是什麼門電路app 瀏覽:867
博之輪運動手錶用什麼app 瀏覽:646
asp視頻聊天源碼 瀏覽:85
網路游戲編程pdf 瀏覽:534
360壓縮出錯 瀏覽:848
源碼編輯器沒聲音 瀏覽:915
兒童源碼編程網址 瀏覽:828
有個app叫尺度空間怎麼樣 瀏覽:674
微博登陸java 瀏覽:683
一枚程序員 瀏覽:744