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

image.png

往下和往上,图像的宽高是原来的一倍和一半

图像金字塔

  我们在图像处理中常常会调整图像大小,最常见的就是放大和缩小操作。一个图像金字塔是一系列图像的组合,最底下图像尺寸最大,最顶端图像尺寸最小,从空间上往下看就像一个金字塔。
  图像处理当中最常见的就是利用图像金字塔产生一系列不同分辨率图像,然后在不同尺度空间去寻找图像对应的特征,因为我们输入的图像我们不知道是什么样子,而图像金字塔可以保证图像特征存在。

常见opencv金字塔

  • 高斯金字塔——用来对图像进行降采样
  • 拉普拉斯金字塔——用来重建一张图片,根据他的上层图像降采样图片

高斯金字塔

  从底像上,逐层降采样得到。必须是逐层采用,不能隔层采用1/4。
降采样之后图像大小是原来的1/2 x 1/2,就是对原图像删除偶数行与列。

高斯金字塔生成过程分为两步:

  1. 对当前层进行高斯模糊
  2. 删除当前层的行与列

高斯不同DOG

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

  • 上采样 pyrUp(Mat src,Mat dst,Size(src.cols*2,src.rows*2))
  • 降采样 pyrDown(Mat src,Mat dst,Size(src.cols/2,src.rows/2))
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
Mat src, dst;
int main(int argc, int ** argv)
{
    src = imread("F:/cat.png");
    if (!src.data) {
        printf("无法加载图片\n");
        return -1;
    }
    namedWindow("input img", CV_WINDOW_AUTOSIZE);
    namedWindow("output img", CV_WINDOW_AUTOSIZE);
    imshow("input img", src);
    //上采样
    pyrUp(src, dst, Size(src.cols * 2, src.rows * 2));
    imshow("上采样", dst);
    //降采样
    Mat dst_;
    pyrDown(src, dst_, Size(src.cols / 2, src.rows / 2));
    imshow("降采样", dst_);
    //DOG
    Mat gray_src, g1, g2, catImg;
    cvtColor(src, gray_src, CV_BGR2GRAY);
    GaussianBlur(gray_src, g1, Size(3, 3), 0, 0);
    GaussianBlur(g1, g2, Size(3, 3), 0, 0);
    subtract(g1, g2, catImg, Mat());
    normalize(catImg, catImg, 255, 0, NORM_MINMAX);
    imshow("DOG", catImg);
    waitKey(0);
    return 0;
}


输出结果演示


image.png

从上面可以看到上采样和降采样分别提高和降低了图像的分辨率,高斯不同处理结果显示了图像的内在特征。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:http://www.cnblogs.com/silence-hust/p/4193208.html关于用拉...
    Mordekaiser阅读 8,577评论 1 2
  • 图像金字塔 图像金字塔是图像中多尺寸表达的一种,最主要的是用于图像的分割。是一种以多分辨率来解释图像的有效但概念简...
    傻傻小萝卜阅读 3,813评论 0 0
  • 图像金字塔 图像金字塔在图像处理领域应用比较多,上课的时候只记得老师讲的一个大概的概念:图像金字塔和普通金字塔一样...
    Mordekaiser阅读 5,371评论 0 0
  • 图像金字塔是图像处理和计算机视觉中常用到的概念,常常用于多尺度处理领域(multiscale processing...
    学而时习之_不亦说乎阅读 14,123评论 1 6
  • dbclick 在头部加上这个,防止双击的时候浏览器放大 触摸事件 touchstart 当手指放在屏幕上触发。 ...
    贞贞姐阅读 3,685评论 0 7