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 }