opencv c++ 将RGB图转换为灰度图
时间: 2024-09-24 15:15:48 浏览: 80
将RGB值转换为灰度值的简单算法
在OpenCV (计算机视觉库) 中,将RGB图像转换为灰度图是很常见的预处理步骤。你可以使用 `cv::cvtColor` 函数来进行这种颜色空间转换。以下是使用C++的基本步骤:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
// 加载RGB图像
cv::Mat rgbImage = cv::imread("input.jpg", cv::IMREAD_COLOR); // 第二个参数指定为彩色
// 检查图像是否加载成功
if (!rgbImage.data) {
std::cout << "Error loading image" << std::endl;
return -1;
}
// 转换为灰度图像
cv::Mat grayImage;
cv::cvtColor(rgbImage, grayImage, cv::COLOR_BGR2GRAY); // BGR到GRAY的转换,注意BGR是OpenCV默认的颜色顺序
// 显示原图和灰度图
cv::imshow("Original Image", rgbImage);
cv::imshow("Gray Image", grayImage);
// 等待用户按键,然后关闭所有窗口
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
```
在这个例子中,`cv::cvtColor`函数的第一个参数是输入图像,第二个参数是要转换的目标颜色空间,`cv::COLOR_BGR2GRAY`表示从BGR色彩模型转换到灰度。
阅读全文