用c++实现opencv图片缩放
时间: 2024-10-04 22:00:18 浏览: 53
在C++中使用OpenCV库对图片进行缩放,通常可以使用`cv::resize()`函数。这个函数允许你按比例调整图像的尺寸。下面是一个简单的例子,展示了如何将一张图片缩小:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 加载图片
cv::Mat src = cv::imread("input.jpg", cv::IMREAD_COLOR); // 替换为你的图片路径
if (src.empty()) {
std::cout << "Could not open or find the image" << std::endl;
return -1;
}
// 定义缩放的比例,例如缩小到原图的一半
double scale_percent = 50; // 缩放百分比
int width = static_cast<int>(src.cols * scale_percent / 100);
int height = static_cast<int>(src.rows * scale_percent / 100);
// 使用cv::resize()函数进行缩放
cv::Mat resized;
cv::resize(src, resized, cv::Size(width, height), interpolationMethod); // 可以选择cv::INTER_LINEAR(线性插值),cv::INTER_CUBIC(立方插值)等
// 显示原始和缩放后的图片
cv::imshow("Original Image", src);
cv::imshow("Resized Image", resized);
// 等待用户按键,然后关闭窗口
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
```
在这个代码片段中,你需要替换`"input.jpg"`为你想要缩放的实际图片路径。`interpolationMethod`是插值方法的选择,如上面提到的`cv::INTER_LINEAR`或`cv::INTER_CUBIC`。
阅读全文