这一课讲了两个直方图有关的理论,重点在理论知识。
即:什么是直方图、直方图均衡化。
勇哥很欣赏贾志刚老师的讲课,理论与实践结合,许多理论都丰富了勇哥对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
版权声明:本文章代码及资料部分或全部来自贾志刚老师的视频,勇哥只是在个人理解的基础上做学习笔记,转载请附上博文链接!

