OpenCV 图像金字塔

 1 #include "opencv2/imgproc/imgproc.hpp"
 2 #include "opencv2/highgui/highgui.hpp"
 3 #include <math.h>
 4 #include <stdlib.h>
 5 #include <stdio.h>
 6 
 7 using namespace cv;
 8 
 9 /// 全局变量
10 Mat src, dst, tmp;
11 char* window_name = "Pyramids Demo";
12 
13 
14 /**
15  * @函数 main
16  */
17 int main( int argc, char** argv )
18 {
19   /// 指示说明
20   printf( "
 Zoom In-Out demo  
 " );
21   printf( "------------------ 
" );
22   printf( " * [u] -> Zoom in  
" );
23   printf( " * [d] -> Zoom out 
" );
24   printf( " * [ESC] -> Close program 
 
" );
25 
26   /// 测试图像 - 尺寸必须能被 2^{n} 整除
27   src = imread( "../images/chicky_512.jpg" );
28   if( !src.data )
29     { printf(" No data! -- Exiting the program 
");
30       return -1; }
31 
32   tmp = src;
33   dst = tmp;
34 
35   /// 创建显示窗口
36   namedWindow( window_name, CV_WINDOW_AUTOSIZE );
37   imshow( window_name, dst );
38 
39   /// 循环
40   while( true )
41   {
42     int c;
43     c = waitKey(10);
44 
45     if( (char)c == 27 )
46       { break; }
47     if( (char)c == 'u' )
48       { pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 ) );
49         printf( "** Zoom In: Image x 2 
" );
50       }
51     else if( (char)c == 'd' )
52      { pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );
53        printf( "** Zoom Out: Image / 2 
" );
54      }
55 
56     imshow( window_name, dst );
57     tmp = dst;
58   }
59   return 0;
60 }
原文地址:https://www.cnblogs.com/ybqjymy/p/12170904.html