基于OpenCV的暗视觉图像处理的研究

2013-04-01 05:26谢正祥
激光与红外 2013年3期
关键词:时域分辨率灰度

陈 勇,张 虎,李 愿,郑 凡,谢正祥

(1.重庆邮电大学网络化控制与智能仪器仪表教育部重点实验室,重庆400065;2.重庆医科大学生物医学工程研究室,重庆400016)

1 引言

近年来,数字图像处理技术广泛地应用于视频监控、医疗检测、图像通讯等领域。但在低照度的环境下,采集到的图像对比度和信噪比都很低,往往不能满足实际的需要。由于人眼的生理视觉特性,我们已知道人类的视觉会受到空间分辨率、时间分辨率和频率分辨率的限制,通过对人类视觉的对比度分辨率的测量,发现人类的视觉还存在着对比度分辨率的限制[1]。通过对低照度下的图像进行了对比度分辨率的补偿,能够有效地拓宽原图像灰度谱的范围、挖掘出图像隐藏的信息[2]。

2 算法原理

2.1 人类对比度分辨率

由于人类视网膜上存在着视锥细胞与视杆细胞,所以人类视觉有着明视觉和暗视觉之分。人类视觉对不同的灰度之间存在着分辨阈值,在低照度环境下拍摄的视频图像由于灰度分辨率的限制,图像信息并不能完全被人眼所识别。通过实验,在明暗视觉下的人类对比度分辨率的实验结果如下[2]:式中,JND(x)表示的是图像中的两点恰可分辨的灰度阈值;x表示图像的灰度值。文献中同时指出了在暗视觉环境下JND低于20个灰度级,人眼就无法分辨,但是图像的信息是存在的[1]。

2.2 对比度分辨率的自适应补偿

由于人类对比度分辨率的限制,针对暗环境下的视频图像,可以通过对比度补偿,把不能分辨的灰度补偿到人眼可以识别的程度,把原图像中的灰度差为1的相邻两个灰度级的差异放到JND(just noticeable difference)上,这样就对分辨率进行了补偿。不同背景下的灰度补偿公式如下:

式中,TG(i)表示的是原始灰度进行补偿后的目标灰度;JND(i)表示的就是视频图像中的两点间的恰可分辨的灰度距离;OG(i)表示的是就是当前的灰度值。式中的k为补偿因子,它决定了补偿的深度。一幅图像中的k值可以以下面的式子进行自适应取值。

式中,AGO表示的是平均背景灰度。

2.3 帧间时域滤波

在图像的传送和转换过程中,由于各种因素的影响,总会引入一些噪声。如果直接使用这种降质图像,将对结果造成不良影响,所以有必要对图像进行去噪。帧间时域滤波能有效地抑制噪声,提高信噪比。

视频图像序列进行M帧时域滤波的表达式如下:

通过M帧图像序列平均,可以把噪声方差减少M倍[3],为了避免运动物体在帧间出现跳跃,可以结合运行补偿。以三帧运动帧间补偿为例:

经过运动补偿以后,在连续显示时,针对低速运动的物体能有效的避免物体的跳跃。

3 基于OpenCv平台的实现

OpenCv是Intel公司的开源计算机视觉库,由一系列的C函数和少量的C++类构成,提供了丰富的图像及计算机视觉处理函数,提供了数组、队列、树等基本的数据结构;基本的图像处理,如滤波、边缘检测、形态操作等;高级图像视觉操作功能,如摄像机标定、运动分析、机器学习等;同时OpenCv还支持跨平台,能够移植到不同的开发平台,如ARM、DSP。

利用OpenCv实现的关键流程图如图1所示。

图1 算法流程图

OpenCv中有一种IplImage图像结构,通过指针可以容易地对图像中的数据进行操作,关键操作步骤如下:

(1)从视频流中捕获图像帧

函数CvCapture*cvCreateFileCapture(const char* filename)将读入指定的视频文件,返回一个指向CvCapture类型的指针,包含视频的基本信息,如帧率、图像的大小等。

函数IplImage*cvQueryFrame(CvCapture*capture)将从视频文件或摄像头中捕获并返回一帧,返回的指针指向IplImage数据类型,但是返回的图像不能直接被用户修改。

(2)把彩色图像转换成灰度图像

函数 void cvCvtColor(const CvArr* src,CvArr*dst,int code)用于图像颜色空间的转换,通过code的取值,可以把图像从三通道的彩色转换成灰度图像,便于灰度处理。

(3)视频流的时域帧间滤波与自适应补偿

函数 IplImage*cvCreateImage(CvSize size,int depth,int channels)将开辟一个符合指定大小的IplImage类型的内存区域,通过指针可以对图像数据进行帧间滤波与自适应补偿操作。

(4)视频帧的显示

函数 int cvNamedWindow(const char* name,int flags)用于创建一个显示窗口,用于显示视频帧。

函数 void cvShow Image(const char* winname,const CvArr* image)将图像显示函数到已创建的窗口中。

(5)视频帧的存储

函数 CvVideoWriter* cvCreatVideoW riter(const char* filename,int fourcc,double fps,CvSize frame Size,int isColor=1)将按需要创建一个视频文件,返回一个CvVideoWriter*指针。

函数int cvWriteFrame(CvVideoWrite r* writer,const IplImage* image)用于把转换后的视频帧写入到上面创建的视频文件中。

4 实验分析

利用函数CvCapture*cvCreateFileCapture(const char* filename);可以把本地视频载入内存当中,图2是对本地视频图像滤波处理的对比图。

图2 帧间时域滤波对比图

图2 (a)为原视频中的一帧原图像,图2(b)为帧间滤波后的图像,从对比图中可以直观看到右图的图像效果比左图好。利用文献[4]中的方法,对原始图像与处理的图像分别做2级灰度谱平坦化。

由灰度谱可以看出,图3(b)中的灰度谱线比图3(a)要平滑而且信息量也增加了,同时也可以看到起到了降噪的作用。

图3 灰度谱对比图

图4 是对图3进行滤波前后补偿的图像,由对比可看出图4整体偏亮,书中封面上的字也比图3更容易辨别,这是因为原图像中灰度值大多集中于低灰度区,灰度带宽比较窄,由于人眼的分辨率的限制,有些信息是被掩埋着的。通过对图像进行滤波、补偿,可以看到图像的质量得到了增强,实现了低照度下的视频挖掘。从图4的对比中可以看出图4(b)比图4(a)的噪声更少,图像质量更好。由文献[5]中的图像质量评价方法对二图进行评价,如表1所示。

图4 滤波前后图像补偿的对比图

表1 处理前面评价参数对比

由表1知原视频帧的AG,AC,CAF的值都比较低,直接补偿后的图像的AG,AC,CAF的值明显增加,但IE的值却降低了,而帧间时域滤波不仅可以提高其他三个值,同时IE的值也得到了提高。所以将帧间时域滤波和对比度补偿结合能提高图像的质量,以实现人眼分辨率的补偿挖掘不能直接看到的信息。

5 结论

本文利用对比度分辨率的补偿和帧间时域滤波挖掘低照度下的视频图像中隐藏的信息。再结合OpenCV这个开源的机器视觉库,可以更方便地应用到嵌入式平台的图像处理中。为了得到更好的图像质量,对自适应的补偿因子k的取值还有待进一步的研究。

[1] Xie Zhengxiang,Wang Zhifang,Liu Yuhong,et al.Measuring the contrast resolution limits of human vision based on the modern digital image processing[J].Joumal of Biomedicalengineering,2008,25(5):615 - 619.(in Chinese)谢正祥,王志芳,刘玉红,等.基于数字图像处理的人类视觉对比度分辨率限制测定[J].生物医学工程杂志,2008,25(5):615 -619.

[2] Xie Zhengxiang,LiuYuhong,Wang Zhifang,et al.A nonlinerly compensatory principle and method for human vision contrast resolution[J].Joumal of Chengdu Medical College,2009,4(3):157 -162.(in Chinese)谢正祥,刘玉红,王志芳,等.人类视觉对比度 分辨率的非线性补偿原理和方法[J].成都医学院学报,2009,4(3):157 -162,172.

[3] Li Huaiqiong,Chen Qian,Sui Xiubao,et al.The technique of themultiframe image accumulation and equilibration with inf-rared thermal imageing system[J].Laser&Infrared,2005,35(12):978 -980.(in Chinese)李怀琼,陈钱,隋修宝,等.多帧累加平均技术在红外实时图像处理中的应用[J].激光与红外,2005,35(12):978-980.

[4] Xie Zhengxiang,Wang Zhifang,Liu yanhuan,et al.The theory of gradually flattening gray spectrum [J].Chinese Journal of Medical Physics,2006,23(6):405 - 408.(in Chinese)谢正祥,王志芳,刘燕欢,等.灰度谱分级平坦化理论[J].中国医学物理学杂志,2006,23(6):405 -408.

[5] Guo Yanrong,Xian Jiqing,Lü Xiafuńet al.Based on visional perception [J].Journal of Chongqing University of Science and Technology,2009,11(6):151 -153(in Chinese)郭艳荣,鲜继清,吕霞付,等.基于视觉感知的最好质量图像评价方法[J].重庆科技学院学报,2009,11(6):151-153.

[6] Xie Zhengxiang,Wang Zhifang,LiuYuhong,et al.Measuringmethod of image gray and color spectrum used in lower layer image mining:China[P].ZL200610054324.9.(in Chinese)谢正祥,王志芳,刘玉红,等.用于底层挖掘的图像灰度/色度信息的高分辨检测方法:中国[P].ZL200610054324.9.

[7] Zhang Xuehe,Zhang Xuedong,Ding Ning.Det-ection and tracking ofmoving objects with with OpenCV [J].Journalof University of Science and Technology Liaoning,2010,33(5):490 -494.(in Chinese)张学贺,张学东,丁宁.基于OpenCV的运动目标检测与跟踪[J].辽宁科技大学学报,2010,33(5):490-494.

[8] Jia Xiaojun,Yu Qingcang.The image processing based on open source computer vision library[J].Computer Applications and Software,2010,25(4):276 - 278.(in Chinese)贾小军,喻擎苍.基于开源计算机视觉库OpenCV的图像处理[J].计算机应用与软件,2010,25(4):276-278.

猜你喜欢
时域分辨率灰度
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
EM算法的参数分辨率
基于时域信号的三电平逆变器复合故障诊断
原生VS最大那些混淆视听的“分辨率”概念
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于深度特征学习的图像超分辨率重建
一种改进的基于边缘加强超分辨率算法
基于灰度线性建模的亚像素图像抖动量计算
基于极大似然准则与滚动时域估计的自适应UKF算法