Opencv 图像缩放

本文详细介绍了OpenCV中图像缩放的方法,包括图像金字塔(pyrUp、pyrDown)的原理与应用,如高斯缩放、高斯金字塔和拉普拉斯金字塔。同时,讨论了图像插值的不同方式,如最近邻、双线性及双三次插值,并解释了边界扩充插值的重要性。此外,还提及了滚动条缩放的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一,图像缩放

二,图像金字塔(pyrUp、pyrDown)

1,缩放

2,高斯缩放

3,高斯金字塔

4,拉普拉斯差值

5,拉普拉斯金字塔

三,图像插值

1,最近邻插值 INTER_NEAREST

2,双线性插值 INTER_LINEAR

3,双三次插值 INTER_CUBIC

四,边界扩充插值

1,坐标计算 borderInterpolate

2,边界扩充 copyMakeBorder

五,滚动条缩放


一,图像缩放

图像的缩放可以使用图像金字塔,也可以使用图像插值,每一种算法都既可以用于放大,也可以用于缩小。

二,图像金字塔(pyrUp、pyrDown)

1,缩放

用pyrUp实现放大2倍,pyrDown实现缩小2倍

	string path = "D:\im.jpg";
	Mat image = imread(path, IMREAD_COLOR);
	namedWindow("1", WINDOW_GUI_NORMAL);

	Mat image2, image3;
	pyrUp(image, image2);
	pyrDown(image, image3);
	imshow("1", image);
	imshow("2", image2);
	imshow("3", image3);
	waitKey(0);

结果:

如果进行多次的放大缩小:

	Mat image2, image3;
	pyrUp(image, image2);
	pyrDown(image2, image3);
	pyrUp(image3, image2);
	pyrDown(image2, image3);
	pyrUp(image3, image2);
	pyrDown(image2, image3);
	imshow("1", image);
	imshow("3", image3);

结果:

很明显,多次放大缩小之后会越来越模糊。

2,高斯缩放

缩小:

首先进行高斯模糊卷积(Convolution)_nameofcsdn的博客-CSDN博客

然后把所有的偶数行和偶数列都删掉,就得到了缩小2倍的图片。

放大:

首先隔行隔列插入新的行列,值为0,然后进行高斯模糊,最后所有像素乘以4倍。

pyrUp、pyrDown的实现就是高斯缩放。

3,高斯金字塔

利用高斯缩小,不断的缩小2倍,直到变成满足条件的尺寸,中间过程组织起来共同构成一个金字塔:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值