图像放大与缩小—插值

Opencv中对于图像的放大与缩小主要有两种类型,一种是图像金字塔pyrUp和pyrDown函数,另外一种是更通用的resize函数允许你指定目标图像的尺寸。

一:图像金字塔

对于函数pyrDown和pyrUp在没有指定缩放的大小时,默认大小为源图像的一半或2倍。

PyrDown的原理是先将图像进行高斯平滑,然后去除偶数行。

PyrUp的原理是图像新插入的偶数行全部为0,然后进行高斯平滑。

二:resize插值

插值的方法目前有三种:最邻近元法、双线性内插法﹑三次内插法,我不想介绍,想了解的可以见这篇blog: http://blog.csdn.net/coy_wang/article/details/5027872.我主要想介绍插值的原理

例如:现在有副图像,三行三列,想将其放大为原来的4/3倍,即四行四列。

图像放大与缩小—插值_第1张图片

然后我们就是往这个空的矩阵中填值,要填的值从哪来的呢?是从源图中来,好,先填写目标图像最左上角的像素,坐标为(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

 

你可能感兴趣的:(缩放,opencv,插值,图像金字塔)