ZBLOG

OpenCV 的 Mat 的 resize 方法

在 OpenCV 中,cv::Mat 类提供了 resize 函数,用于调整图像的大小。该函数可以改变图像的宽度和高度,并可以使用不同的插值方法来控制缩放效果。

resize 方法的基本用法

  1. #include <opencv2/opencv.hpp>
  2. void resizeImage(const cv::Mat& inputImage, cv::Mat& outputImage,
  3. const cv::Size& newSize, int interpolationMethod = cv::INTER_LINEAR) {
  4. cv::resize(inputImage, outputImage, newSize, 0, 0, interpolationMethod);
  5. }

参数说明

  • inputImage: 输入的图像(类型为 cv::Mat)。
  • outputImage: 输出调整大小后的图像(类型为 cv::Mat)。通常需要提前创建这个矩阵。
  • newSize: 新的大小,可以通过 cv::Size(width, height) 创建。也可以设置为 (0, 0),这时将根据缩放因子计算新尺寸。
  • fxfy: 如果设置了这两个参数,它们指定在 x 和 y 方向上的缩放因子。如果同时指定了 newSize,则将其忽略。
  • interpolationMethod: 插值方法,用于确定如何生成新的像素值。常见的方法包括:
    • cv::INTER_NEAREST: 最近邻插值
    • cv::INTER_LINEAR: 双线性插值(默认)
    • cv::INTER_CUBIC: 三次插值
    • cv::INTER_LANCZOS4: Lanczos 插值

示例代码

以下是一个完整示例,展示如何使用 resize 函数:

  1. #include <opencv2/opencv.hpp>
  2. #include <iostream>
  3. int main() {
  4. // 读取输入图像
  5. cv::Mat inputImage = cv::imread("path/to/image.jpg");
  6. if (inputImage.empty()) {
  7. std::cerr << "Error loading image!" << std::endl;
  8. return -1;
  9. }
  10. // 定义新尺寸
  11. cv::Size newSize(200, 100); // 宽200,高100
  12. // 创建输出图像矩阵
  13. cv::Mat outputImage;
  14. // 调整图像大小
  15. cv::resize(inputImage, outputImage, newSize);
  16. // 显示原始和调整后的图像
  17. cv::imshow("Original Image", inputImage);
  18. cv::imshow("Resized Image", outputImage);
  19. cv::waitKey(0); // 等待键盘输入
  20. return 0;
  21. }

在这个例子中,我们首先加载一张图片,然后定义新的尺寸并调用 resize 方法来调整图片大小,最后显示原始图片和调整后的图片。

请确保已正确安装 OpenCV,并包含适当的头文件以便编译此代码。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22435

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?