图像金字塔

在图像处理中常常会调整图像的大小,最常见的就是图像的放大和缩小,将图像想金字塔一样变成分辨力不同的一系列图像,最底层的图像尺寸最大,最顶层的尺寸最小,从空间上看,就像一个古代的金字塔。
图像金字塔_第1张图片
高斯金字塔是从底向上,逐层降采样。
降采样图像大小是原图像长和宽的1/2,就是对原图像的偶数行或奇数行进行删除,即得到降采样之后的上一层图像。
高斯金字塔的生成过程分为两步:
1、对当前图像进行高斯模糊
2、删除当前层的偶数行与列
上一层与下一层相比,大小只有1/4。
高斯滤波模板:

 1161 4 6 4 141624164624362464162416414641

高斯不同:就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像,成为高斯不同(DOG)。高斯不同使图像的内在特征,在灰度图像增强、角点检测中经常使用。

CV_EXPORTS_W void pyrUp( InputArray src, OutputArray dst,
                         const Size& dstsize = Size(), int borderType = BORDER_DEFAULT );
CV_EXPORTS_W void pyrDown( InputArray src, OutputArray dst,
                           const Size& dstsize = Size(), int borderType = BORDER_DEFAULT );

参数src:输入图像
参数dst:输出图像
参数dstsize:输出图像的尺寸

    pyrUp(src, dstup, Size(src.cols * 2, src.rows * 2));
    pyrDown(src, dstDown, Size(src.cols / 2, src.rows / 2));

图像金字塔_第2张图片

高斯不同,提取轮廓

    GaussianBlur(gray_src, g1, Size(3, 3), 0, 0);
    GaussianBlur(g1, g2, Size(3, 3), 0, 0);
    subtract(g1, g2, dogImg, Mat());
    //归一化显示
    normalize(dogImg, dogImg, 255, 0, NORM_MINMAX);

图像金字塔_第3张图片

你可能感兴趣的:(OpenCV笔记,图像处理)