这一课讲了两个直方图有关的理论,重点在理论知识。
即:什么是直方图、直方图均衡化。
勇哥很欣赏贾志刚老师的讲课,理论与实践结合,许多理论都丰富了勇哥对halcon算子的认识。
在之前,学习halcon主要精力都是在学习算子怎么用,从来没可能了解它的基础理论,现在贾志刚老师这套opencv的教程则可以反哺halcon的基础理论。
演示程序:
#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
int main(int argc, char** argv) {
Mat src, dst;
src = imread("e:/girl.png");
cvtColor(src, src,CV_BGR2GRAY);
int c = src.channels();
equalizeHist(src, dst);
imshow("src", src);
imshow("dst", dst);
waitKey(0);
return 0;
}程序就用了一个算子完成直方图的均衡化,equalizeHist,效果如下:

程序说明:
什么是直方图(Histogram)
图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。是图像的统计学特征。


直方图均衡化
是一种提高图像对比度的方法,拉伸图像灰度值范围。

如何实现,通过上一课中的remap我们知道可以将图像灰度分布从一个分布映射到另外一个分布,然后在得到映射后的像素值即可。

API说明cv::equalizeHist
equalizeHist(
InputArray src,//输入图像,必须是8-bit的单通道图像
OutputArray dst// 输出结果
)
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文章代码及资料部分或全部来自贾志刚老师的视频,勇哥只是在个人理解的基础上做学习笔记,转载请附上博文链接!


少有人走的路


















