14.图像金字塔——上采样与降采样

  1. 主要内容
    图像金字塔的概念
    采样API
    高斯不同(DOG)

  2. 图像金字塔的概念
    (1)我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像的放大和缩小,但是这里我们介绍图像金字塔。
    一个图像金字塔是一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就像是一个古代金字塔。
    在这里插入图片描述
    (2) 本质:在图像处理中,我们需要得到输入图像不同分辨率的图片,在不同的尺度空间寻找输入图像的特征,因为我们不知道所得到的图像是怎么样的,而图像的金字塔变换是会保证图像的特征一直存在的,

  3. 图像金字塔分为两种 :
    (1)高斯金字塔——对图像进行降采样
    (2)拉普拉斯金字塔——用来重建一张图片根据它的上层降采样图片

  4. 图像金字塔——高斯金字塔
    高斯金字塔是从底向上,逐层降采样得到。降采样之后图像大小是原图像 M x N 的 M / 2 x N / 2,就是对原图像删除偶数行与列,即得到降采样之后上一层的图片。
    (1)高斯金字塔的生成过程分为两步
    ——对当前层进行高斯模糊
    ——删除当前层的偶数行与列
    即可得到上一层的图像,这样上一层跟下一层相比较,都只有当前层的1 / 4 大小
    在这里插入图片描述

  5. 高斯不同(Difference of Gaussian -DOG)
    (1)定义:就是把一张图像在不同参数下作高斯模糊之后的结果相减,得到的输出图像,称为高斯不同。
    高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。
    (2)高斯不同API

GaussianBlur(t1, g1, Size(3, 3), 0, 0);
	GaussianBlur(g1, g2, Size(3, 3), 0, 0);
	subtract(g1, g2, dog, Mat());
	normalize(dog, dog, 255, 0, NORM_MINMAX);

此处测试原图不可以进行高斯不同,报错,转化为灰度图即可

  1. 采样相关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.rows/2));
  1. 图像相减
subtract(Mat t1,Mat t2,Mat result);
  1. 矩阵归一化
    (1)归一化就是把需要处理的数据经过一定的处理(通过某种算法)限制在你所需要的一定范围内
void normalize (
InputArray src,   //输入数组
OutputArray dst,   //输出数组
double alpha=1,    // range normalization模式的最小值
doublebeta=0,      //  range normalization模式的最大值,不用于norm normalization(范数归一化)模式
int norm_type=NORM_L2,   //归一化类型
int dtype=-1,   //   dtype为负数时,输出数组的type与输入数组的type相同;
否则,输出数组与输入数组只是通道数相同,而tpye=CV_MAT_DEPTH(dtype)
InputArray mask=noArray()//操作掩膜,用于指示函数是否仅仅对指定的元素进行操作。
)

(2)归一化类型:
NORM_MINMAX:数组的数值被缩放或平移到一个指定的范围,线性归一化,比较常用
NORM_INF:此类型的定义没有查到,根据OpenCV 1的对应项,可能是归一化数组的C-范数(绝对值的最大值)
NORM_L1:归一化数组的L1 - 范数(绝对值的和)
NORM_L2:归一化数组的(欧几里德)- 范数

  1. 课外扩展:
    OpenCV2中矩阵的归一化 normalize函数详解
    matlab图像处理为什么要归一化和如何归一化
发布了41 篇原创文章 · 获赞 14 · 访问量 2005

猜你喜欢

转载自blog.csdn.net/qq_43367829/article/details/103974410
今日推荐