opencv:图像的放大与缩小

Love The Way You Lie 2022-12-11 11:26 329阅读 0赞

1.涉及函数

函数功能

对图像进行缩放操作

函数原型

  1. CV_EXPORTS_W void resize( InputArray src, OutputArray dst,
  2. Size dsize, double fx = 0, double fy = 0,
  3. int interpolation = INTER_LINEAR );

函数参数

InputArray src – 原始图像
OutputArray dst – 调整尺寸后图像
Size dsize – 调整后的图像尺寸
double fx = 0 – x轴上的缩放系数,一般用默认参数
double fy = 0 – y轴上的缩放系数,一般用默认参数
int interpolation = INTER_LINEAR – 差值方式,一般用默认参数

常用的差值方式
常用的默认差值方式有以下几种:

  • INTER_NEAREST - 最近邻插值
    INTER_LINEAR - 线性插值(默认)
    INTER_AREA - 区域插值
    INTER_CUBIC - 三次样条插值
    INTER_LANCZOS4 - Lanczos插值

返回值

注意:
参数dsize、fx和 fy,不能同时为0。

2. 代码

  1. #include <iostream>
  2. using namespace std;
  3. #include "cv.h"
  4. #include "opencv2\opencv.hpp"
  5. using namespace cv;
  6. #if _DEBUG
  7. #pragma comment(lib,"opencv_world340d.lib")
  8. #else
  9. #pragma comment(lib,"opencv_world340.lib")
  10. #endif
  11. int main()
  12. {
  13. Mat src = imread("D:\\OpencvTest\\lena.jpg");
  14. if (src.data != NULL)
  15. {
  16. Mat bigImage;
  17. //放大图像
  18. resize(src, bigImage, Size(src.cols * 2, src.rows * 2));
  19. Mat smallImage;
  20. //缩小图像
  21. resize(src, smallImage, Size(src.cols / 2, src.rows / 2));
  22. imshow("原始图像", src);
  23. imshow("放大图像", bigImage);
  24. imshow("缩小图像", smallImage);
  25. cvWaitKey(0);
  26. }
  27. else
  28. {
  29. cout << "图片加载失败,请检查文件是否存在!" << endl;
  30. }
  31. getchar();
  32. return 0;
  33. }

发表评论

表情:
评论列表 (有 0 条评论,329人围观)

还没有评论,来说两句吧...

相关阅读

    相关 图像放大缩小—插值

    Opencv中对于图像的放大与缩小主要有两种类型,一种是图像金字塔pyrUp和pyrDown函数,另外一种是更通用的resize函数允许你指定目标图像的尺寸。 一:图像金字塔