opencv改变图片大小
时间: 2024-08-27 16:02:25 浏览: 105
在OpenCV中,改变图片大小通常是通过`cv::imread()`, `cv::imshow()`, 和 `cv::imwrite()` 这几个核心函数配合`cv::resize()`函数来实现的。`cv::resize()`函数的主要作用就是调整输入图像的尺寸,它接受一个输入图像和一个新尺寸作为参数。
下面是一个基本的示例,展示了如何读取一张图片,将其调整到指定的宽度和高度,然后保存调整后的图像:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int argc, char** argv)
{
if (argc != 3) {
std::cout << "Usage: program input_image output_image" << std::endl;
return -1;
}
// 读取原图
cv::Mat srcImage = cv::imread(argv[1], cv::IMREAD_COLOR);
if (!srcImage.data) {
std::cerr << "Error: Could not read the input image." << std::endl;
return -1;
}
// 设置新尺寸,例如将宽度扩大一倍,高度保持不变
int width = srcImage.cols * 2;
int height = srcImage.rows;
// 调整图片大小
cv::Mat resizedImage;
cv::resize(srcImage, resizedImage, cv::Size(width, height));
// 显示原图和放大后的图像
cv::namedWindow("Original", cv::WINDOW_NORMAL);
cv::imshow("Original", srcImage);
cv::namedWindow("Resized", cv::WINDOW_NORMAL);
cv::imshow("Resized", resizedImage);
// 保存调整后的图像
cv::imwrite(argv[2], resizedImage);
// 等待用户按键退出
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
```
在这个例子中,程序从命令行接收两个参数:输入图像路径和输出图像路径。`cv::resize()`函数的第一个参数是源图像,第二个参数是新图像的目标尺寸,第三个参数是输出图像的大小和位置。
阅读全文