opencv#24 高斯图像金字塔

高斯图像金字塔原理

高斯图像序列是由一系列大小不一的图像序列组成的,最大的尺寸是原图像,如上图黑色图像,那么其他图像都是由黑色图像,就是原图像依次生成的,对原图像进行下采样,得到紫色图像,所谓下采样就是对这张图像的尺寸进行缩小, 简单理解为这种图像尺寸的缩小,但是又不是单纯的对图像尺寸缩小,图像缩小后的图像是由原图像采样得到的,因此相当于是在一个16*16的采样中,得到一个8*8的采样图像,因此它的采样频率和尺寸都下降了,所以称为下采样图像,在下采样过程中,不仅可以实现8*8,12*12,15*15都可以称对原图进行下采样。将这些采样图像依次排列,组成一个序列,类似于金字塔形式,就称之为高斯图像金字塔,作用是将原图像中的某个物体,将它的尺寸依次缩小,同时也对物体进行了模糊,这个对应于日常生活中,比如拍摄一个物体,当相机离物体较近时,我们可以得到一个比较大的物体的图像,当相机里物体较远时,得到的物体在图像中就比较小,如果想在图像中识别此物体,当图像较大时,是没有办法知道图像较小是什么样的,因此可以通过下采样,也就是高斯图像金字塔的形式去判定,如果物体尺寸缩小了,应该是什么样,从而进行识别,因此可以克服某个物体尺寸的变化。

这种原理可以应用在很多情况下,比如特征点提取,我们希望物体距离它较近,较远时都可以得到特征点,那么我们就在高斯图像金字塔的每一层中去提取此特征的,当每一层都提取到了特征的时,那么就证明此特征的可以对物体进行缩放,依然能够得到,我们称此特征点具有一个尺寸缩放不变性。

我们也可以利用这种性质创建一个类似于旋转不变性的这样特点的图像金字塔,也就是我将每一种图像依次旋转,不同的角度,得到含有一系列旋转之后的图像,那么我们可以将这个称为旋转金字塔。

两个矩阵相乘

pyrDown()

void cv::pyrDown(InputArray    src,
                 OutputArray   dst,
                 const Size &  dstsize = Size(),
                 int           borderType = BORDER_DEFAULT
                )

·src:输入待下采样的图像。

·dst:输出下采样后的图像,图像尺寸可以指定,但是数据类型和通道数与src相同。

·输出图像尺寸,可以缺省。

·borderTypr:像素边界外推方法的标志。

示例

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv; //opencv的命名空间
using namespace std;

int main()
{
	Mat img = imread("E:/opencv/opencv-4.6.0-vc14_vc15/opencv/lenac.png");
    
	vector<Mat> Guass; //存放高斯金字塔的向量
	int level = 3;//定义金字塔的层数

	Guass.push_back(img); //将高斯金字塔的第0层设置为原图像


	for (int i = 0; i < level; i++)  //对高斯金字塔的第0层进行循环采样
	{
		Mat guass; //存放采样后图像
		pyrDown(Guass[i], guass);
		Guass.push_back(guass);//将采样后的图像存入向量中

		
	}
	//由于我们的一系列图像是放置在向量中的,因此即使我们用Image watch查看也没有办法查看到每一张图像,因此我们再通过for循环,将里面的每一张图像读取出来
	for (int i = 0; i < level; i++)
	{
		//我们希望在循环过程中直接显示图像,因此我们需要设置不同的名称
		string name = to_string(i); //存放用于标识每一张图像的序号
		//依次读取图像
		imshow(name, Guass[i]);//name时图像的序号名称
	}

	waitKey(0);
	return 0;

}

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值