Advertisement

OpenCV处理彩色图像的直方图均衡化(C++版本)

阅读量:

首先对图像的亮度进行均衡化处理,以观察处理效果。具体操作步骤为:将图像颜色空间从BGR转换为YCrCb,随后仅对Y通道进行直方图均衡化处理,最后再将其转换回BGR颜色空间。

以下为实现该功能的代码:

#include
#include

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"

const char* keys =
{
"{help h usage ? | | print this message}"
"{@image | | Image to process}"
};

cv::Mat equalize_y_channel( cv::Mat &src_img )
{
cv::Mat result;
cv::Mat ycrcb;

cv::cvtColor( src_img, ycrcb, cv::COLOR_BGR2YCrCb);

std::vectorcv::Mat channels;
cv::split( ycrcb, channels );

//仅对Y通道进行均衡化处理
cv::equalizeHist( channels[0], ch

全部评论 (0)

还没有任何评论哟~