cv::resize 使用例程
时间: 2024-09-20 19:13:23 浏览: 19
`cv::resize()` 函数是 OpenCV 中的一个常用图像处理函数,用于调整图像的尺寸。它可以帮助你在不失真的情况下改变图片的大小,或者通过插值算法改变像素来实现缩放。以下是 `cv::resize()` 的基本使用例程:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 读取原始图像
cv::Mat srcImage = cv::imread("input.jpg", cv::IMREAD_COLOR);
if (srcImage.empty()) {
std::cout << "Could not read the image." << std::endl;
return -1;
}
// 定义新的尺寸,例如将宽度和高度都缩小一半
int newWidth = srcImage.cols / 2;
int newHeight = srcImage.rows / 2;
// 使用 cv::resize 进行缩放,可以指定插值方法,如 cv::INTER_LINEAR 或 cv::INTER_CUBIC
cv::Mat resizedImage;
cv::resize(srcImage, resizedImage, Size(newWidth, newHeight), interpolationMethod); // interpolationMethod 要替换为你想要的插值方法
// 保存缩放后的图像
cv::imwrite("output.jpg", resizedImage);
// 显示原图和缩放后的图像
cv::imshow("Original Image", srcImage);
cv::imshow("Resized Image", resizedImage);
cv::waitKey(0);
return 0;
}
```
在这个例子中,`interpolationMethod` 可以是 `cv::INTER_NEAREST`, `cv::INTER_LINEAR`, `cv::INTER_AREA`, `cv::INTER_CUBIC`, 或 `cv::INTER_LANCZOS4` 等,它们分别代表最近邻、线性、面积填充、立方体和兰伯茨插值。