当前位置:   article > 正文

【opencv】教程代码 —ImgProc (9) 图像金字塔

【opencv】教程代码 —ImgProc (9) 图像金字塔

9. Pyramids.cpp

c2c3ab997c2e30eedace736abb450547.png

721970a2701c185f71faf07f49d22f5c.jpeg

c24a9b9f759d34a8f7af35ef63588363.png

  1. /**
  2. * @file Pyramids.cpp
  3. * @brief 本样例代码展示了图像金字塔(pyrDown和pyrUp)的使用
  4. * @author OpenCV团队
  5. */
  6. // 导入需要的头文件
  7. #include "iostream"
  8. #include "opencv2/imgproc.hpp"
  9. #include "opencv2/imgcodecs.hpp"
  10. #include "opencv2/highgui.hpp"
  11. // 使用命名空间
  12. using namespace std;
  13. using namespace cv;
  14. // 定义窗口名称
  15. const char* window_name = "Pyramids Demo";
  16. /**
  17. * @function main
  18. */
  19. int main( int argc, char** argv )
  20. {
  21. /// 通用提示
  22. cout << "\n Zoom In-Out demo \n "
  23. "------------------ \n"
  24. " * [i] -> 放大 \n" // i代表放大
  25. " * [o] -> 缩小 \n" // o代表缩小
  26. " * [ESC] -> 关闭程序 \n" << endl; // ESC退出程序
  27. //![load]
  28. // 定义图像文件名,如果命令行参数大于2则使用参数作为文件名,否则默认为 "chicky_512.png"
  29. const char* filename = argc >=2 ? argv[1] : "chicky_512.png";
  30. // 加载图像
  31. Mat src = imread( samples::findFile( filename ) );
  32. // 检查图像是否成功加载
  33. if(src.empty()){
  34. printf(" 打开图像出错\n");
  35. printf(" 程序参数: [image_name -- 默认 chicky_512.png] \n");
  36. return EXIT_FAILURE; // 如果图像加载失败,则返回错误代码
  37. }
  38. //![load]
  39. //![loop]
  40. // 循环处理图像
  41. for(;;)
  42. {
  43. //![show_image]
  44. // 显示图像
  45. imshow( window_name, src );
  46. //![show_image]
  47. // 等待用户按键输入
  48. char c = (char)waitKey(0);
  49. // 如果用户按了ESC键,退出循环
  50. if( c == 27 )
  51. { break; }
  52. //![pyrup]
  53. // 如果用户按了'i',则放大图像
  54. else if( c == 'i' )
  55. {
  56. pyrUp( src, src, Size( src.cols*2, src.rows*2 ) );
  57. printf( "** Zoom In: Image x 2 \n" );
  58. }
  59. //![pyrup]
  60. //![pyrdown]
  61. // 如果用户按了'o',则缩小图像
  62. else if( c == 'o' )
  63. {
  64. pyrDown( src, src, Size( src.cols/2, src.rows/2 ) );
  65. printf( "** Zoom Out: Image / 2 \n" );
  66. }
  67. //![pyrdown]
  68. }
  69. //![loop]
  70. // 返回成功代码
  71. return EXIT_SUCCESS;
  72. }

该代码是一个完整的图像处理应用程序,主要演示了如何通过OpenCV库中的图像金字塔函数(pyrUp, pyrDown)来放大和缩小图像。用户可以通过命令行参数传入需要处理的图片名称,并通过键盘输入'i'或'o'来实现图片的放大和缩小,从而直观地观察图像金字塔的处理效果。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/333970?site
推荐阅读
相关标签
  

闽ICP备14008679号