图像放大与缩小—插值
2017-02-23 20:23
260 查看
Opencv中对于图像的放大与缩小主要有两种类型,一种是图像金字塔pyrUp和pyrDown函数,另外一种是更通用的resize函数允许你指定目标图像的尺寸。
一:图像金字塔
对于函数pyrDown和pyrUp在没有指定缩放的大小时,默认大小为源图像的一半或2倍。
PyrDown的原理是先将图像进行高斯平滑,然后去除偶数行。
PyrUp的原理是图像新插入的偶数行全部为0,然后进行高斯平滑。
二:resize插值
插值的方法目前有三种:最邻近元法、双线性内插法﹑三次内插法,我不想介绍,想了解的可以见这篇blog:http://blog.csdn.net/coy_wang/article/details/5027872.我主要想介绍插值的原理
例如:现在有副图像,三行三列,想将其放大为原来的4/3倍,即四行四列。
![](https://img-blog.csdn.net/20131231220926234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTHU1OTcyMDM5MzM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后我们就是往这个空的矩阵中填值,要填的值从哪来的呢?是从源图中来,好,先填写目标图像最左上角的像素,坐标为(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
一:图像金字塔
对于函数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
相关文章推荐
- matlab练习程序(图像放大/缩小,最邻近插值)
- 图像放大与缩小—插值
- matlab练习程序(图像放大/缩小,放大没有进行插值操作)
- matlab练习程序(图像放大/缩小,双立方插值)
- 图像的缩放(图像缩小和图像放大 旋转 倾斜)
- c# 图像放大或缩小定位问题
- 图像的放大与缩小(3)——双立方插值算法
- 关于图像缩小放大的2个结论
- 教您Photoshop中如何快速放大、缩小、移动图像
- Halcon MFC混合编程-图像显示随鼠标滚动放大缩小
- OpenCv 图像的放大和缩小
- 怎么在网页中通过JAVAscript控制SVG图像放大缩小
- [转]openCV: 线性插值方法进行图像放大
- Android中常用的选择图像,跟换图像等(图像放大缩小等)
- 图像的放大与缩小(1)——等距采样法
- iOS图形处理1(缩小/放大图像)
- [原型设计]Axure制作图像的放大与缩小效果的四种方式
- ImageView实现图像的放大缩小和旋转功能
- android相机、图库获取照片,并实现两个手机对图像进行放大,缩小功能