21xrx.com
2024-05-20 06:18:31 Monday
登录
文章检索 我的文章 写文章
C++ OpenCV 缩放(Resize)
2023-07-06 17:27:05 深夜i     --     --
C++ OpenCV 缩放 Resize 图像处理

OpenCV 是一个广泛使用的开源计算机视觉库。其中,缩放是其中一个常用的图像处理操作。缩放可以将图像放大或缩小到指定大小,也可以根据指定的比例进行缩放。在 C++ OpenCV 中,缩放可以通过 resize() 函数来实现。

resize() 函数有多种重载形式,最简单的一种形式如下:

void cv::resize(

 InputArray                src,    // 输入图像

 OutputArray               dst,    // 输出图像

 Size                   dsize,   // 输出图像大小

 double                  fx,    // x 方向缩放比例

 double                  fy,    // y 方向缩放比例

 int                   interpolation = INTER_LINEAR // 插值算法,可选值包括 INTER_NEAREST、INTER_LINEAR、INTER_CUBIC 等

);

其中,src 是输入图像,dst 是输出图像,dsize 是输出图像的大小,可以通过 Size(w, h) 的形式来指定;fx 和 fy 是分别表示在 x 和 y 方向上的缩放比例。interpolation 是插值算法,控制缩放后图像的平滑程度。常用的插值算法包括 INTER_NEAREST(最近邻插值)、INTER_LINEAR(双线性插值)和 INTER_CUBIC(双三次插值)等。

下面是一个缩小图像的例子:

原图像:

![original image](https://i.imgur.com/TqvWgN7.jpg)

使用 resize() 函数将图像缩小一倍:


#include <opencv2/opencv.hpp>

using namespace cv;

int main()

{

  Mat img = imread("original.jpg");

  Mat result;

  resize(img, result, Size(img.cols / 2, img.rows / 2));

  imshow("result", result);

  waitKey();

  return 0;

}

效果图:

![result image](https://i.imgur.com/Ox5yjJK.jpg)

从上面的代码可以看出,缩放图像只需要调用 resize() 函数,并传入相应的参数即可。与其他图像处理操作一样,C++ OpenCV 提供了十分方便易用的函数库,对于初学者或者快速开发应用程序而言,是非常有帮助的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复