C++实现图像灰度处理
时间: 2023-07-11 11:22:45 浏览: 197
C++基于 OpenCV+Qt 库实现的图像处理软件源代码+详细项目文档,可实现对图像的灰度化、二值化、均值滤波、边缘检测等处理
5星 · 资源好评率100%
以下是一个简单的C++程序来实现图像灰度处理:
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
{
// 加载图像
Mat image = imread("lena.jpg", IMREAD_COLOR);
if (image.empty())
{
std::cout << "Could not open or find the image" << std::endl;
return -1;
}
// 转换为灰度图像
Mat grayImage;
cvtColor(image, grayImage, COLOR_BGR2GRAY);
// 显示原始图像和灰度图像
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", image);
namedWindow("Gray Image", WINDOW_NORMAL);
imshow("Gray Image", grayImage);
waitKey(0);
return 0;
}
```
这个程序使用OpenCV库来处理图像。它首先加载一张彩色图像,然后使用`cvtColor`函数将其转换为灰度图像。最后,它显示原始图像和灰度图像。
你可以将上面的程序保存在一个名为`gray.cpp`的文件中,并使用以下命令来编译它(需要安装OpenCV库):
```
g++ gray.cpp -o gray `pkg-config --cflags --libs opencv4`
```
这将生成一个名为`gray`的可执行文件。运行它,它应该会显示原始图像和灰度图像。
阅读全文