图像金字塔

作者: jjkke88 | 来源:发表于2017-02-26 16:51 被阅读0次

    一个图像金字塔是一系列的图像的集合,这个集合中的所有图像均来自于同一张原始图像,是通过不断的采样获得的。

    分类

    • 高斯金字塔(Gaussian pyramid):下采样
    • 拉普拉斯金字塔(Laplacian pyramid) 重建上层未采样图像

    高斯金字塔

    • 每一层都按从下到上的次序编号, 第i层表示为
    • 为了获得第 i+1 层的金字塔图像,采用如下步骤:

      • 将G_i与高斯内核卷积


        高斯内核高斯内核
      • 将所有偶数行和列去除
    • 不断重复以上步骤就可以得到整个金字塔

    • 以上过程描述了对图像的向下采样,如果将图像变大呢?:
      首先,将图像在每个方向扩大为原来的两倍,新增的行和列以0填充
      使用先前同样的内核(乘以4)与放大后的图像卷积,获得 “新增像素” 的近似值。

    opencv实现

    #include "opencv2/imgproc/imgproc.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include <math.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    using namespace cv;
    
    /// 全局变量
    Mat src, dst, tmp;
    char* window_name = "Pyramids Demo";
    
    
    /**
     * @函数 main
     */
    int main( int argc, char** argv )
    {
      /// 指示说明
      printf( "\n Zoom In-Out demo  \n " );
      printf( "------------------ \n" );
      printf( " * [u] -> Zoom in  \n" );
      printf( " * [d] -> Zoom out \n" );
      printf( " * [ESC] -> Close program \n \n" );
    
      /// 测试图像 - 尺寸必须能被 2^{n} 整除
      src = imread( "../images/chicky_512.jpg" );
      if( !src.data )
        { printf(" No data! -- Exiting the program \n");
          return -1; }
    
      tmp = src;
      dst = tmp;
    
      /// 创建显示窗口
      namedWindow( window_name, CV_WINDOW_AUTOSIZE );
      imshow( window_name, dst );
    
      /// 循环
      while( true )
      {
        int c;
        c = waitKey(10);
    
        if( (char)c == 27 )
          { break; }
        if( (char)c == 'u' )
          { pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 ) );
            printf( "** Zoom In: Image x 2 \n" );
          }
        else if( (char)c == 'd' )
         { pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );
           printf( "** Zoom Out: Image / 2 \n" );
         }
    
        imshow( window_name, dst );
        tmp = dst;
      }
      return 0;
     }
    

    相关文章

      网友评论

        本文标题:图像金字塔

        本文链接:https://www.haomeiwen.com/subject/bmgowttx.html