cv::Mat对图像进行缩略保存
时间: 2024-09-20 08:07:10 浏览: 38
`cv::Mat` 是 OpenCV 中用于表示图像矩阵的数据结构,它支持多种图像数据类型和通道数。如果你想对图像进行缩略保存,可以按照以下步骤操作:
1. **读取图像**:
使用 `cv::imread()` 函数从文件或内存读取图像到 `cv::Mat` 对象。
```cpp
cv::Mat img = cv::imread("input.jpg", cv::IMREAD_COLOR);
```
2. **缩略处理**:
可以选择性地调整图像的宽度、高度或保持宽高比缩放。例如,如果只想保留原图的一半大小,可以用 `resize()` 函数。
```cpp
cv::Size newSize(img.cols / 2, img.rows / 2); // 缩小一半
cv::Mat resizedImg;
cv::resize(img, resizedImg, newSize);
```
3. **保存图像**:
使用 `imwrite()` 函数将缩略后的图像保存到指定文件。
```cpp
cv::imwrite("output_thumbnail.jpg", resizedImg);
```
**完整示例**:
```cpp
#include <opencv2/opencv.hpp>
int main() {
cv::Mat img = cv::imread("input.jpg", cv::IMREAD_COLOR);
if (img.empty()) { // 检查是否成功加载
std::cout << "Image not loaded." << std::endl;
return -1;
}
cv::Size newSize(img.cols / 2, img.rows / 2); // 缩小到原来的一半
cv::Mat resizedImg;
cv::resize(img, resizedImg, newSize);
cv::imwrite("output_thumbnail.jpg", resizedImg);
return 0;
}
```
阅读全文