如何提取包含高亮度蓝色背光的显示屏中心区域
主要软件: LabVIEW Development Systems>>LabVIEW Professional Development System
主要软件版本: 2011 SP1
主要软件修正版本: N/A
次要软件: LabVIEW Modules>>LabVIEW Vision Development Module
问题: 我有一个显示屏,在它正常显示时,中心显示区域有较强的蓝色背景光,我如何从拍摄到的整体图像中将该蓝光区域提取出来,以便后续的进一步分析?
解答: 这里有必要先指出:再强大的后期图像处理,也比不上最初拍摄一张好的图片。在上面的图中,如果用一个更好的相机拍摄出更清晰和更高分辨率的图片,会给后续的处理带来极大的方便,不过限于经费等各方面因素,客户现阶段无法购买好的相机。
那么如何来提取显示屏中心区域呢?最开始进行了以下几种思路的尝试:
1)利用Color Pattern Match:由于显示屏所显示的信息不一样,如图1中的左右两幅图很不一样,无法选择一个统一的模板;
2)利用Color Location:Color Location可以对包含鲜明颜色信息的待测图像进行快速的检测,但是它的精度不高,不能获取边沿信息;
3)利用IMAQ Select Rectangle函数每次选取Rectangle或Rotated Rectangle区域:这个测试最终要用在产线上,不可能每拍出一张图之后,进行人工手动选择ROI,这样非常耗费时间;
4)利用Shape Detection查找矩形:Shape Detection只支持灰度或二值化图像,但这不是问题,主要的问题在于图像中边缘不明显,甚至有倒圆角,并且有视角偏差,通过shape detection找不到该矩形区域。
由于显示屏中心区域具有明显的蓝光颜色信息,因此最终的思路是:
1. 通过阈值化将高亮度区域和其它部分分离开来,这样高亮度区域阈值化后像素值为1,而其它区域像素值为0;
2. 利用比较-->映射,如果二值图像中像素值为0,则将彩色图中相应索引处的像素值置为0,最终从彩色图像中通过这种映射方式将低亮度的显示屏中心区域之外的信息滤掉。
具体流程图如下,其中阈值化、填充小孔、扩充边缘、微小粒子过滤等步骤是在LabVIEW中调用Vision Assistant Express完成的,采用这些处理函数是为了更好的得到一个完整连续的显示屏中心区域,而滤除掉小孔和杂散粒子。
值得注意的阈值化这一步(Color Threshold),本应用中依据蓝光强度将显示屏中心以外区域滤除,因此限定仅当蓝光分量在207和255之间时,阈值化后值为1。但是不用担心,这个区域限定不需要完全定死,不同图像即使有一些亮度变化,也可以通过后续(Fill Holes, Particle Filter)进行优化。
![](images/39D3C7F3BD3C4BF786257A5400301BA1_3.jpg)
图3:Color Threshold设置
经过这一系列步骤处理后的效果如图4所示:
图4:图像处理效果
相关链接:
附件:
Extract regions contains bright backlight.7z
报告日期: 08/08/2012
最近更新: 08/08/2012
文档编号: 6072TN7K
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.