用c++opencv写一个直方图均衡代码
时间: 2024-05-10 20:19:55 浏览: 111
好的,我可以为您编写一个使用C++和OpenCV进行直方图均衡化的代码。以下是示例代码:
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
// 读取图像
Mat image = imread("test.jpg");
// 转换为灰度图像
Mat gray;
cvtColor(image, gray, COLOR_BGR2GRAY);
// 计算直方图
Mat hist;
int histSize = 256;
float range[] = {0, 256};
const float* histRange = {range};
calcHist(&gray, 1, 0, Mat(), hist, 1, &histSize, &histRange);
// 直方图均衡化
Mat eq;
equalizeHist(gray, eq);
// 显示图像
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", gray);
namedWindow("Equalized Image", WINDOW_NORMAL);
imshow("Equalized Image", eq);
waitKey(0);
return 0;
}
```
您只需将代码中的图像文件路径“test.jpg”更改为您自己的图像文件路径,然后就可以运行了。如果您有使用OpenCV的经验,那么应该可以理解这个代码。如果您还没有使用过OpenCV,建议先学习一些基础知识。
阅读全文