opencv 笔记12 Imgproc_Pyramid

来源:互联网 发布:windows 缩小行间距 编辑:程序博客网 时间:2024/05/22 09:52
#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;}

void pyrUp(const Mat& srcMat& dst, const Size& dstsize=Size())

void pyrDown(const Mat& srcMat& dst, const Size& dstsize=Size())

Parameters:     

  • src – The source image
  • dst – The destination image. It will have the specified size and the same type as src
  • dstsize –

    Size of the destination image. By default it is computed as Size(src.cols*2, (src.rows*2) . But in any case the following conditions should be satisfied:

    \begin{array}{l} | \texttt{dstsize.width} -src.cols*2| \leq ( \texttt{dstsize.width} \mod 2) \\ | \texttt{dstsize.height} -src.rows*2| \leq ( \texttt{dstsize.height} \mod 2) \end{array}






原创粉丝点击