目录
1.概念
1.1图像金字塔的概念
- 我们在图像处理中常常会调整图像的大小,最常见的就是方法(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像分放大和缩小,但是这里我们介绍图像金字塔
- 一个图像金字塔式一系列图片组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就像是一个古埃及金字塔。
- 在图像金字塔在图像中产生不同分辨率的图像,然后在不同的尺度空间去寻找图像对应的特征。金字塔变换会保持图像的特征一直存在
1.2高斯金字塔
- 高斯金字塔-用来对图像进行降采样
- 拉普拉斯金字塔-用来重建一张图像根据它的上层降采样图片
1.2.1高斯金字塔
- 高斯金字塔是从低向上,逐层降采样得到
- 降采样之后图片大小是原图像MxN的M/2 xN/2,就是对原图像删除偶数行与列,即得到降采样之后上一层的图片
- 高斯金字塔的生成过程分为两步:(1)对当前层进行高斯模糊(2)删除当前层的偶数行与列,即可得到上一层的图像,这样上一层跟下一层相比都只有它的1/4的大小
那么图像在金字塔每层的特征是如何得到的呢?
注意通过高斯不同(DOG=difference of Gaussian)
知识点扩展——高斯不同:
- 定义:就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。称为高斯不同(DOG)
- 高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。
1.2.2采样相关API
- 上采样(cv::pyrUp)--zoom in放大
- 降采样(cv::pyrDown)--zoom out缩小
pyrUp(Mat src,Mat dst,Size(src.cols*2,src.rows*2))生成的图像是原图在宽与高各放大二倍
pyrDown(Mat src,Mat dst,Size(src.cols/2,src.rowa/2))生成的图像是原图在宽和高都缩小1/2
1.2.3代码演示
void MyApi::image_pyramid_(Mat& image)
{
Mat dst;
//上采样
pyrUp(image, dst, Size(image.cols * 2, image.rows * 2));
imshow("上采样输出", dst);
//降采样
Mat s_down;
pyrDown(image, s_down, Size(image.cols / 2, image.rows / 2));
imshow("降采样输出", s_down);
}
分别是原图、上采样、降采样结果
1.2.4高斯不同DOG案例
void MyApi::image_pyramid_(Mat& image)
{
//高斯不同DOG
Mat gray_image,g1,g2,diff_image;
cvtColor(image, gray_image, COLOR_BGR2GRAY);
GaussianBlur(gray_image, g1, Size(3, 3), 0, 0);
GaussianBlur(g1, g2, Size(3, 3), 0, 0);
//计算高斯不同
subtract(g1, g2, diff_image, Mat());
imshow("DOG图像", diff_image);
}
原图和DOG图:仔细看才可以看到脸的轮廓。
由于不容易看清晰,我们可以把像素放缩都255.
代码如下:
void MyApi::image_pyramid_(Mat& image)
{
//高斯不同DOG
Mat gray_image,g1,g2,diff_image;
cvtColor(image, gray_image, COLOR_BGR2GRAY);
GaussianBlur(gray_image, g1, Size(3, 3), 0, 0);
GaussianBlur(g1, g2, Size(3, 3), 0, 0);
//计算高斯不同
subtract(g1, g2, diff_image, Mat());
normalize(diff_image, diff_image, 255, 0, NORM_MINMAX);//把他放缩到0-255空间就可以看到了
imshow("DOG图像", diff_image);
}
结果如下:
2.补充
补充:角点检测
角点检测是计算机视觉系统中用来获取图像特征的一种方法。我们都常说,这幅图像很有特点,但是一问他到底有哪些特点,或者这幅图有哪些特征可以让你一下子就识别出该物体,你可能就说不出来了。
角点通常被定义为两条边的交点。比如,三角形有三个角,矩形有四个角,这些就是角点,也是他们叫做矩形、三角形的特征,我们看到一些几何图形具有三个角,那么我们便可以脱口而出说这是一个三角形。
上面所说的是严格意义上的角点,但是从广义来说,角点指的是拥有特定特征的图像点,这些特征点在图像中有具体的坐标,并具有某些数学特征(比如局部最大或最小的灰度)。
图像特征类型可以被分为三种:
- 边缘
- 角点(感兴趣关键点)
- 斑点(感兴趣区域)
角点是个很特殊的存在。如果某一点在任意方向的一个微小的变动都会引起灰度很大的变化,那么我们就可以把该点看做是角点。
Harris 角点检测
Harris角点检测是一种直接基于灰度图的角点提取算法,稳定性高,尤其对L型角点(也就是直角)检测精度高。缺点也是明显的,就是运算速度慢。