首先,先从原理讲起吧。
其中,n是图像中像素的总和,是当前灰度级的像素个数,L是图像中可能的灰度级总数。
将一个人图像拆成一个个离散的像素点,然后作离散量的分布函数
怕你们看不懂,举个例子吧
最后,附上代码吧
#include <opencv2/opencv.hpp>
/*这是直接调用的openncv里的函数*/
int main()
{
cv::Mat srcImage = cv::imread("D:\\Lenna.jpg");
if (!srcImage.data)
return 1;
cv::Mat srcGray;
cv::cvtColor(srcImage, srcGray, CV_BGR2GRAY);
//原图输出
cv::imshow("src", srcImage);
//灰度图输出
cv::imshow("src