在opencv中用C++处理图像代码示例
时间: 2024-11-20 16:34:41 浏览: 10
在OpenCV(计算机视觉库)中,使用C++处理图像的基本步骤通常涉及读取、显示、操作和保存图像。下面是一个简单的例子,展示如何加载一张图片,将其转换为灰度,并显示出来:
```cpp
#include <opencv2/opencv.hpp> // 引入OpenCV库
int main() {
// 1. 读取图像
cv::Mat img = cv::imread("example.jpg", cv::IMREAD_COLOR); // 加载彩色图像,如果不是彩色则用IMREAD_GRAYSCALE
if (img.empty()) { // 检查是否成功加载
std::cout << "Could not open or find the image." << std::endl;
return -1;
}
// 2. 转换为灰度图
cv::Mat gray_img; // 创建一个新矩阵用于存储灰度图
cv::cvtColor(img, gray_img, cv::COLOR_BGR2GRAY); // 将BGR转为灰度
// 3. 显示图像
cv::imshow("Original Image", img);
cv::imshow("Grayscale Image", gray_img);
// 4. 等待用户按键,然后关闭窗口
int key = cv::waitKey(0);
if (key == 'q' || key == 27) { // 如果按下'q'键或Esc键
cv::destroyAllWindows();
} else {
std::cout << "Press 'q' to quit." << std::endl;
}
return 0;
}
```
在这个例子中,我们首先导入了OpenCV库,然后读取了一个图像文件。接着将彩色图像转换成灰度,最后通过`imshow`函数显示原始图像和转换后的灰度图像。程序会等待用户按键,如果按下了'q'键或者Esc键,就关闭所有窗口。
阅读全文