APP下载

基于多处理机环境下舌苔图像预处理研究*

2020-05-29唐俊奇宋非无陈良英

九江学院学报(自然科学版) 2020年1期
关键词:处理机低层中值

唐俊奇 宋非无 陈良英

(湄洲湾职业技术学院 福建莆田 351254)

在人的口腔中,舌头是最灵活的部位,通过舌头可以表现出人体上的不少疾病,它就像晴雨表一样可以反映出人的身体健康状况。在舌头的表面上有一层舌体上面所散布的一层苔垢称之为舌苔,身体健康的人其舌表现为薄白而湿润且干湿度适中,不滑不燥。舌头不正常表明人体会有问题:舌头厚的人,他的消化系統或呼吸系统就有可能患有疾病;如果舌苔厚并而呈黄色的情况,则表明这个人的身体内可能有湿热存在,或者是消化道或呼吸道有炎症存在,假如伴有咳嗽的话,则肺部还可能出现炎症;舌苔厚且腻的人其体内可能有寒湿存在;若患者有阴虚以及有慢性消耗性疾病的时候,则可能表现为没有舌苔,比如肿瘤、结核病患者。若舌质表现为暗红色或有淡斑时,则表明患者气血不足,很可能有心脑血管这方面的疾病,对于血黏度高或血脂高并且舌质淡的老人可能患有贫血、营养不良、气虚和慢性疾病等。如果在舌头的两侧有出现牙印的情况,则可能患有气虚,如果舌头的颜色还是黄色的情况,则表明该患者有湿热,若舌头的颜色伴有白色则可能是湿;舌头高则表示患者可能患有口腔炎症和溃疡;老年人如果舌头发麻的话,则应考虑气血不足或血黏度过高。但是,人们在提取舌苔图像时可能会产生偏离,这样就给对病情的判断带来很大不便。如何处理在提取舌苔图像过程中所产生的偏离,是亟待解决的问题。

通常情况下,人们通过数码相机或摄像头等采集到口腔内的舌苔图像,很可能因存在光照不均等现象产生噪声。这些情况会给舌苔图像造成严重的影响。因此,必须先对图像进行预处理,将其转变成近似实际的舌苔图像。

1 低层图像处理

低层图像处理就是在现有已存储的图像上面直接进行操作,这样就可以改善或增强图像,以促进人们和计算机更好地识别图像。这种图像处理可用在许多应用场合,包括医疗诊断、警局中指纹识别、检查制造中有缺陷的部件以及胶卷工业等。图像首先由照相机或其他传感器捕捉并以数字化方式存储起来。被存储的图像是由一个二维的像素(图元)阵列表示的。许多低层图像处理操作都假设图像是单色的,并将像素看成具有某一灰度值( gray level)或亮度,此灰度值有一个从最低到最高值的范围(即灰度级, grayscale)。典型地,灰度级被正则化成从零开始,零用来表示黑色而用255来表示白色,因此一个像素需用8位表示。彩色图像则通常需要使用三个值,每一个表示一种主色(红、绿和蓝),或是使用像素值指向一个査找表[1]。

1.1 低层图像的预处理

假设已存储图像所使用的坐标系统的原点在左上角,如图1所示。图像的像素被存储在二维数组,一个像素图(pixmap)P[i][j1]以及各个像素点的亮度可以通过访问此数组得到。这里需要指出的是,从本质上来讲,图像和已存储信息两者是一一对应的关系,但大型图像文件可使用压缩结构或使用与图像一起存储的彩色查找表以减小对存储量的需求。当然在进行任何图像处理操作之前,该文件必须复原,且信息仍应以二维数组排列。

图1 像素图

对已存储的图像信息可以进行许多不同操作,通常是从低层处理开始。低层处理利用各个像素值以某种方式对图像加以修改,通常这些操作是完全并行的。例如,一个图像通常具有“噪声”,这是由传感器或环境所产生的不希望的变化,这种噪声会改变实际的像素值理想情况下,应去除这个噪声,而只保持所需的图像。做到这一点的操作通常被称为噪声清除(noise cleaning)或燥声减少(noise reduction)。由于图像像素的真实值是末知的(否则就不需要用传感器来检测了),因此需要采用实验方法。另一个例子是对图像边缘的检测,这是为了有于对图像的识别。边缘是指亮度的巨大变化。在边缘检测中,图像中的亮度变化将被增强或突出。其他的低层操作包括将像素标志为属于某一指定对象以及对象四配,此时一个对象将以某种样式与一已知对象进行比较。一种简单的匹配形式是模板匹配(emplate matching)这种方法是将图像与一个已存储的模板进行比较。

有时需要识别与直线和曲线有关的那些像素,完成这种操作的有效方法是使用霍夫变换。霍夫变换利用像素坐标去发现最符合要求的线方程。因此将霍夫变换归为低层图像处理(但不是预处理)。霍夫变换非常适合于并行实现。在某些应用中,如果能将图像从原来的空间域转换成频率域将是非常有益的[2],例如,在对数字图像进行滤波时就要进行这种变换。这类变换也是对像素值进行操作,以生成一个与已数字化图像率有关的一个新的值集。

1.2 计算需求

在开始讨论各种低层操作之前,首先来看看为什么需要进行并行处理。假设一个像素图有,对于1024×1024个像素这样的像素图以及用8位二进制码表示一个像素颜色,则需要220 byte(1M byte)的存储空间,这样的存储空间己经没有什么问题了,但是缓慢的计算速度将成为系统的瓶颈,假设必须对每个像素进行一次操作的话,那么操作一个帧的则需要进行220次操作。现在计算机的运行速度已相当快但即使每次操作只需10-8秒(10ns/操作)总计也需10ms。在实时应用中,计算速度必须达到帧速率(通常为每秒60~85帧)。必须在一帧的时间内操作完一个帧图像中的所有像素,即必须在12~16ms之内处理完毕。通常许多复杂性高的操作所要完成的操作往往不只一次。对顺序执行的计算机而言经常需开发专用的图像处理硬件以满足这种需求,这类专用硬件会继续用信号处理艺片加以开发[3]。但是这类系统缺少并行计算机所能提供的灵活性,此外,采用专用硬件将难于适应新的图像处理算法。

2 图像的点处理

图像处理操作可分为产生的输出基于单个像素(点处理)的值的操作、产生的输出基于部邻近像素组(局部操作)的值的操作、产生的输出基于图像所有像素(全局操作)的值的操作。点运算符不需要图像中其他像素的值,因此并行化点处理是非常简单且是完全并行的:局部操作也是可高度并行化的。点处理的例子包括阈值化(thresholding)、对比度扩展(contrast stretching)和灰度值减少(gray level reduction)。

2.1 阈值化处理

在单级值化处理中,将保留所有具有超过预定阈值的像素,而小于该阈值的其他像素被归为0,即对于一个给定像素xi,对每个像素进行的操作为[4]

if (xi<個值) xi=0,else xi=1;

2.2 对比度扩展

在对比度扩展中,灰度值的范围被扩展到可更清楚地观察到图像细节部分。对于定处于xl和xh,范围中的像素值xi,对比度通过以下公式扩展到xl和xh范围:

例如在医疗图像中,通常如骨头那样的密集结构会比如肌肉或器官那样的软结构吸收得多的人射能量(由x射线、超声或其他技术产生)对比度扩展通常用放大软组织部分的灰度级(也许只有5~20%),这样做之后,具有最小密度软组织灰度级值将成为可显示像素亮度的一极端,而具有有最大密度软组织灰度级值将成为另一个极端。对比度扩展也用于如骨头那样的密集结构以使细微裂缝那样的微小变化也能看得清楚。

2.3 灰度值减小

在灰度值减小中,用来表示灰度值的位数将被减少,也许这也将减少存储需求。实现这种减小的一个简单方法是舍弃不大重要的位,但这种方法仅当图像中灰度值的全部范围均能被很好表示时才会比较有效,且能保足够消息。

3 图像的直方图处理的实现方法

通过建立图像的直方图(histogram)能够发现灰度值的变化。在阈值化处理之前,一个直方图能用来确定一个合适的阈值级。直方图的生成是一个全局操作,因为在操作中需要用到所有的像素值。事实上,直方图是非意有用的。一个图像的直方图是由指明图像中处于每个灰度值的像素数的函数所组成的。图2示出了一个可能的直方图。

图2 图像直方图

生成一个直方图的顺序代码可简单地表示为[5]:

for(i=0;i

for(j=0;j

hist[p[i][j]]=hist[p[i][j]]+1;

其中像素被包含在数组p[][]中,而hist[k]将保存具有第k级灰度值的像素数。

上述顺序代码的并行求解方法可用来计算直方图。可将内层循环展开并将它们映射到各个处理机上。对于共享存储器求解方法,语句hist[p[i][j]]=hist[p[i][j]]+1-1将需要放入一个临界区。一般而言,应使各个处理机完成各自的局部累加,此后再进行全局累加以减少对全局单元访问的延迟。对于消息传递方法,由各个分离的处理机完成部分累加,然后由一个主进程替代临界区来完成最后累加。

4 图像的中值滤波处理

通过中值滤波可以过滤尖峰脉冲,在舌苔图像进行中值滤波处理可以使其转变成近似实际的舌苔图像,避免了在后续的舌苔图像二值化处理时出现大片的黑或大片的白现象。

4.1 中值法滤除噪声的原理[6]

经过图像采集工具获得的数字图像,经过阈值化处理、对比度扩展等一些处理后虽然可以去除各种干扰,提高图像的质量,但是,这样的数字图像还不足以满足高精度几何测量的要求。为了进一步改善数字图像的质量,还需要对图像作进一步的处理。

数字图像在成像和传输过程中往往会夹杂一些噪声,如椒盐噪声和高斯噪声等。这些噪声可能会对图像处理结果产生消极影响,所以在图像处理前要对该图像进行平滑。

由于平均值方法会使边缘和其他锐化细节变得模糊,为减少噪声,可采用邻近像素的中值(median)来替代原来的像素值,当图像属于强“尖峰”(“spikelike”)图像时,这种方法在保持边缘的锐化性方面就显得更为有效。将像素值从最小到最大按序排列,并选取位于中间的像素值(假定像素数为奇数)就可得到中值。

4.2 中值法滤除噪声顺序实现的效率分析[6]

假定像素值按递升序排列为y0、y2、y3、y4、y5、y6、y7和y8,则中值便为y4。这种操作要求组中所有值必须先排序,然后用第5个元素替代像素的原来值。采用如冒泡法那样的顺序排序算法将依次找到较小值,因而事实上排序在获得第5个最低值后便可终止。在这种情况下,找到每一个中值所需的步数为8+7+6+5+4=30,而对n个像素便30n步。

4.3 中值法滤除噪声并行化实现的效率分析[6]

为方便并行操作和提高速度,采用近似的排序算法,它只需使所有行和列排序一次,且各行均以相同方向排序[7-8]。在每一阶段使用有效的冒泡排序且只需三步。首先,对每一行进行比较和交换操作,它需要三步。对于第i行,有:Pi,j-1Pi,j Pi,jPi,j+1 Pi,j-1Pi,j。

Pi-1,jPi,jPi,jPi+1,jPi-1,jPi,j。

图3中显示出了全过程。pi,j的值将取第5个最大像素值,该算法并不总是选取第5个最大值。例如,如果第5个最大值为X2(在图中2中),且它也是所在行中的最大值,则它将被保留在原来位置而不被此算法选中。尽管如此,此算法是一个合理的渐近算法,如果每个像素被分配一个处理机,则整个图像仅需6步就可以完成取中值。同样,该算法可扩展为每个处理机处理一组像素。

图3 需六步的求中值近似算法

综上所述:假设一幅图像有n个像素,在中值法滤除噪声的顺序实现中,总共需要进行30n步操作;而在中值法滤除噪声的并行化实现中,每个处理机总共只需要进行6步操作,而所有处理机同时进行操作,这样大大提高了图像处理的效率。

5 结语

文章探讨了从通过数码相机或摄像头等采集系统获得口腔内的舌苔的数字图像,通过对图像预处理在处理机环境中减少舌苔图像过程中所产生的偏离并提高图像处理的速度,达到了预期的效果。

猜你喜欢

处理机低层中值
南海夏季风垂直结构的变化特征及其对中国东部降水的影响
Lagrange中值定理的证明及其应用
浅谈家用餐厨垃圾处理机的现状
污泥干化处理机翻抛轴的模态分析
关于低层房屋建筑工程造价的要点及控制措施探讨探索
Lagrange中值定理的巧妙应用
雷达信号处理机显控及通信技术
高等数学中拉格朗日中值定理的教学处理
微分中值定理教法研讨
基于VPX标准的二次监视雷达通用处理机设计