C++请读取图像,打印图像长度、宽度,判断读取是否为空显示图像并保存图像
时间: 2024-10-21 16:06:40 浏览: 20
TIFF图文件格式详解
在C++中,你可以使用OpenCV库来处理图像操作,包括读取、显示和保存。以下是一个简单的步骤来完成这个任务:
1. **安装OpenCV**:
首先,确保已经安装了OpenCV库,如果没有,你可以从官网(https://opencv.org/releases/)下载对应版本的二进制包或者通过包管理器如vcpkg、apt-get等安装。
2. **包含必要的头文件**:
```cpp
#include <opencv2/opencv.hpp>
```
3. **读取图像**:
```cpp
cv::Mat image; // 使用cv::Mat存储图像数据
if (cv::imread("image.jpg", cv::IMREAD_COLOR) != nullptr) {
std::cout << "成功读取图像!" << std::endl;
} else {
std::cout << "无法读取图像,文件可能不存在或格式不支持." << std::endl;
}
```
`imread()`函数用于读取图片文件,如果读取失败则返回空矩阵。
4. **获取图像尺寸**:
```cpp
int width = image.cols;
int height = image.rows;
std::cout << "图像的宽度是:" << width << ", 高度是:" << height << std::endl;
```
`cols`和`rows`属性分别给出宽度和高度。
5. **检查图像是否为空**:
如果`image.empty()`返回`true`,表示图像为空或读取出错。
6. **显示图像**:
```cpp
if (!image.empty()) {
cv::imshow("Image", image);
cv::.waitKey(0); // 等待用户按键,然后关闭窗口
}
```
`imshow()`用于显示图像,`waitKey()`等待用户按下任意键。
7. **保存图像**:
```cpp
if (!image.empty() && cv::imwrite("output_image.jpg", image)) {
std::cout << "图像已保存到output_image.jpg" << std::endl;
} else {
std::cout << "保存图像失败." << std::endl;
}
```
`imwrite()`用于将图像保存为文件。
阅读全文