c++ opencv 直方图均衡
时间: 2024-04-18 10:23:02 浏览: 92
opencv实现直方图均衡化
C++ OpenCV中的直方图均衡化是一种用于图像增强的技术,它可以提高图像的对比度和亮度分布。直方图均衡化通过重新分布图像的像素值来实现,使得图像中的像素值在整个灰度范围内均匀分布。
在OpenCV中,可以使用`equalizeHist()`函数来实现直方图均衡化。该函数接受一个灰度图像作为输入,并返回均衡化后的图像。
以下是使用C++ OpenCV进行直方图均衡化的示例代码:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat image = cv::imread("image.jpg", cv::IMREAD_GRAYSCALE);
// 进行直方图均衡化
cv::Mat equalizedImage;
cv::equalizeHist(image, equalizedImage);
// 显示原始图像和均衡化后的图像
cv::imshow("Original Image", image);
cv::imshow("Equalized Image", equalizedImage);
cv::waitKey(0);
return 0;
}
```
这段代码首先使用`imread()`函数读取一张灰度图像,然后调用`equalizeHist()`函数对图像进行直方图均衡化。最后使用`imshow()`函数显示原始图像和均衡化后的图像。
阅读全文