PAGE \* MERGEFORMAT1
数字图像与视频处理
第 三 次 作 业
姓名: /
班级:
学号:
提交日期: 2017. 3. 19
摘 要:灰度直方图是数字图像处理中最简单且有用的工具,它是多种空域处理技术的基础。本文以VS2013为开发环境,借助openCV视觉库,实现灰度直方图的绘制、直方图均衡、直方图匹配等操作,并在此基础上对不同对比度图片的处理结果进行比较,分析各操作的优缺点。此外,针对目前直方图阈值分割技术存在的适用性差、结果稳定性差的缺陷,本文提出一种基于双峰间谷地容量最大化的直方图阈值分割算法,即首先进行采样和内插平滑直方图,消除细小的凸起和凹陷,然后对各个谷地进行容量统计,选取容量最大谷地的谷点作为阈值。经过比较,此算法计算的阈值已十分接近人工选取的结果,分割误差近似为零,表现出较好的性能。
关键词:openCV 直方图 均衡化 直方图匹配 峰谷点分割 采样内插恢复
绘制图像的直方图
直方图简介
图像直方图是反映一幅图像像素分布的统计表,其横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的,纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。一个灰度级别在范围0,L-1的数字图像的直方图是一个离散函数,即
p
式中,n是图像像素的总数,rk是第k个灰度级,nk是图像中第
n
图像的直方图可以是任意维的,一般研究的是便于直观显示和分析的一维和二维直方图,一维直方图以统计表格的形式呈现,二维直方图则常以图像的形式呈现,某一位置像素的灰度值对应该位置所代表的颜色的种类出现的次数。
在数字图像处理中,灰度直方图是最简单且有用的工具,它是多种空间域处理技术的基础,对于分析图像的各灰度占比、灰度级偏向有重要作用,广泛应用于图像数据统计、图像增强、图像的压缩与分割等各方面[1]。直方图是图像的一个重要特征,因为直方图用少量的数据表达图像的灰度统计特征。
图像的灰度直方图局域一下性质[1]:
(1)灰度直方图只能反映图像的灰度分布情况,而不能反映图像像素的位置,即丢失了像素的位置信息。
(2)一幅图像对应唯一的直方图,反之不成立。不同的图像可对应相同的直方图。
(3)灰度直方图反映了书胡子图像中每一灰度级与其出现频率之间的关系,它描述该图像的概貌。
处理过程及结果
openCV(Open Source Computer Vision Library)是一种广泛使用的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上,它由C++语言编写,主要接口也是C++,但也有大量的Python,Java和 MATLAB的接口。openCV提供的视觉处理算法非常丰富,有大量的图像处理函数可供使用,本文的吐下那个处理操作即是在openCV3.1.0和VS2013环境下进行的。
openCV中的直方图统计函数是 HYPERLINK "/master/d6/dc7/group__imgproc__hist.html" \l "ga4b2b5fd75503ff9e6844cc4dcdaed35d" cv::calcHist (),形参主要包括输入的图像对象、通道、直方图尺寸等,具体参数此处将不一一说明。主要实现步骤包括图像读取、定义直方图参数、数据统计、以图像形式显示并存储直方图等,具体过程见附录代码1。在VS2013环境下,利用C++编写程序,得到各图像的灰度直方图如下。为方便观察和比较,本文将原始图片和其直方图以成对的方式呈现。
图1 各图像及其直方图
结果讨论
分析上述各图及其直方图可以发现,直方图有效地揭示了图像的灰度分部情况。以上总共四组图像,纵向对比四副原图(citywall、elain、lena、woman)可知,不同图像的直方图一般是不同的,如果一幅图中出现了明显的大面积的同一灰度,那么其直方图中会出现明显的峰值。这个结论在同一组图的横向对比中更容易发现,一个极端的情况就是二值图或者近似二值图(citywall1、elain1、lena1、woman1),它们的直方图几乎只有黑白两个峰,因为图像中几乎不存在其它灰度的像素。
此外,在横向对比中还可以验证一些结论,那就是暗图像(elain3、lena4、woman2)直方图分量集中在灰度级的低端,亮图像(lena2)直方图集中在灰度级的高端,低对比度图像(citywall2、elain3、lena2)具有较窄的直方图,而高对比度图像(citywall、elain、lena、woman)的直方图灰度分量覆盖很宽的范围。
直方图均衡化
直方图均衡化算法
直方图均衡化是指将原