• OpenCV 金字塔图像缩放


     

     

    // image_pyramid.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <string>
    #include <iostream>
    using namespace std;
    
    #include "opencv2/imgproc/imgproc.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include <math.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    
    
    #pragma comment(lib,"opencv_core2410d.lib")  
    #pragma comment(lib,"opencv_highgui2410d.lib")  
    #pragma comment(lib,"opencv_imgproc2410d.lib")  
      
    
    using namespace cv;
    
    /// 全局变量
    Mat src, dst, tmp;
    char* window_name = "Pyramids Demo";
    
    
    /**
     * @函数 main
     */
    int main( int argc, char** argv )
    {
      /// 指示说明
      printf( "
     Zoom In-Out demo  
     " );
      printf( "------------------ 
    " );
      printf( " * [u] -> Zoom in  
    " );
      printf( " * [d] -> Zoom out 
    " );
      printf( " * [ESC] -> Close program 
     
    " );
    
      /// 测试图像 - 尺寸必须能被 2^{n} 整除
      string image_name;
      cout<<"input image name:"<<endl;
      cin>>image_name;
    
      src = imread( image_name);
      if( !src.data )
        { printf(" No data! -- Exiting the program 
    ");
          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 
    " );
          }
        else if( (char)c == 'd' )
         { pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );
           printf( "** Zoom Out: Image / 2 
    " );
         }
    
        imshow( window_name, dst );
        tmp = dst;
      }
      return 0;
    }
    
    //缩小,再放大就模糊了,什么情况?


     

  • 相关阅读:
    Linux搭建ElasticSearch环境
    从DDD开始说起
    TFS看板晨会
    TFS看板的迭代规划
    TFS看板规则
    TFS看板的设计
    Api容器在应用架构演化中的用途
    基于Abp的WebApi容器
    线程队列
    动态类型序列化
  • 原文地址:https://www.cnblogs.com/wangyaning/p/4236964.html
Copyright © 2020-2023  润新知