圖像放大與縮小—插值

Opencv中對於圖像的放大與縮小主要有兩種類型,一種是圖像金字塔pyrUp和pyrDown函數,另外一種是更通用的resize函數允許你指定目標圖像的尺寸。

一:圖像金字塔

對於函數pyrDown和pyrUp在沒有指定縮放的大小時,默認大小爲源圖像的一半或2倍。

PyrDown的原理是先將圖像進行高斯平滑,然後去除偶數行。

PyrUp的原理是圖像新插入的偶數行全部爲0,然後進行高斯平滑。

二:resize插值

插值的方法目前有三種:最鄰近元法、雙線性內插法﹑三次內插法,我不想介紹,想了解的可以見這篇blog:http://blog.csdn.net/coy_wang/article/details/5027872.我主要想介紹插值的原理

例如:現在有副圖像,三行三列,想將其放大爲原來的4/3倍,即四行四列。


然後我們就是往這個空的矩陣中填值,要填的值從哪來的呢?是從源圖中來,好,先填寫目標圖像最左上角的像素,座標爲(0,0),那麼該座標對應源圖中的座標可以由如下公式得到:srcX =dstX*(srcWidth/dstWidth), srcY = dstY*(srcHeight/dstHeight),好了,套用公式(1*0.75, 0*0.75)=(0.75,0)

然後通過以上三種方法求得所對應點(0.75,0)處的像素值即可。

參考blog:

<1>http://www.360doc.com/content/10/0907/17/474846_51910436.shtml

<2>http://blog.csdn.net/coy_wang/article/details/5027872

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章