基于图像处理的河道冰块自动提取技术研究

时间:2022-10-13 04:02:02

基于图像处理的河道冰块自动提取技术研究

摘要:冰情观测是水文测量的一项重要内容,研究渠道的冰害,尤其是畅流式冰水二相流水面流冰,对于预防冰情灾害的发生具有迫切而现实的重要意义。本文的主要内容就是研究数字图像处理技术在河道流冰冰块自动提取识别的应用。

关键词:冰情观测;二值化阈值;形态学

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2015)28-0136-03

Automated Extraction of Ice on the River Image Processing

LUO Zhang-hai1,TIAN Wei2

(1.Xinjiang water conservancy ICT Electronics Co., Ltd.,Urumqi 830000, China ; 2.Xinjiang Water Resources and Hydropower Research Institute, Urumqi 830000, China)

Abstract:Observing ice conditions is an important hydrographic survey, research channel ice damage, especially smooth flow of ice water two-phase flow of water surface ice, ice conditions for the prevention of the occurrence of the disaster is urgent and realistic significance. The main content of this paper is to study the digital image processing technology in the automatic extraction of river ice cubes identification applications.

Key words: ice condition observation; binarization; morphology

冰情观测是水文测量的一项重要内容,在秋冬季节随着气温的降低,河流渠道都会出现结冰现象,形成水内冰、水面浮冰和冰盖。在河道、渠道的冰期运行过程中,如果控制不当,在部分河段将会出现“开江”现象,引起冰塞和冰坝等灾害,导致水位骤升,水流减缓,严重时导致供水中断,水工建筑物遭到破坏,因此,研究渠道的冰害,尤其是畅流式冰水二相流水面流冰,对于预防冰情灾害的发生具有迫切而现实的重要意义。

在研究河道表面流冰的过程中,冰块的识别和提取是十分重要的一步,本文的主要内容就是研究数字图像处理技术在河道流冰冰块自动提取识别的应用。

1 河道流冰图像处理

如上所述,本文的主要内容是通过图像处理的方式识别并提取图像中的冰块,并计算出河道表面漂浮的流冰所占的百分比,即河道表面的流冰密度。因此如何识别河道表面漂浮的流冰是一切后续工作的基础。

1.1 二值化处理

图像二值化作为数字图像处理领域中的一个重要分支,在图像特征提取、图像增强等方面都有广泛的应用,其原理主要就是利用目标物体、背景以及噪声在灰度特性的特点和差异,将待处理的原图通过一系列的数学变换得到包含目标物和背景的灰度二值图。根据其运算的范围不同,二值化的方法可分为全局阈值方法和局部阈值方法;根据阈值选取的不同,二值化的算法分为固定阈值和自适应阈值。

1.1.1 全局自适应阈值算法

全局阈值法方法的处理思路是:对于输入源图像的每一个像素点,先选定一个全局的阈值T(0~255之间的一个整数),然后通过阈值T将图像的数据分成两部分―大于T的部分和小于T的部分。对于像素值大于T的像素,在对应的输出图像中将其像素值设定为1,否则设定为0。其数学抽象公式表示如下:

[g(x,y)=10,f(x,y)≥T,f(x,y)

其中,f(x,y),g(x,y)分为处理前后图像中位于点(x,y)处的像素点的像素值,T为阈值。阈值T为事先给定的固定值,此时对应的算法即为固定阈值算法,反之为自适应阈值算法。

在全局阈值算法中比较代表性的OTSU大津法[1]、基于谷底最小值的阈值法[2][3]等。现实情况中全局阈值方法在整个处理过程中只使用一个阈值T,并以此实现8位灰度图像到二值图像的转化处理。通常情况下这种方法算法复杂度较为简单,对目标物体与背景差别明显的图像效果良好,但是现场情况往往复杂多变,得到图像普遍存在噪声或不均匀光照等情况,这就使得全局阈值法很难广泛地应用于实际项目。

1.1.2局部自适应阈值算法

局部自适应阈值算法则是根据源图像目标像素的邻域块的像素值分布来确定该像素位置上的二值化阈值T。这样阈值T不再是全局阈值法那样事先给定、固定不变的,而是根据目标像素点周围邻域像素的分布来决定的。亮度较高的图像区域的阈值T通常会较高,反之,亮度较低的图像区域的阈值T则会相适应地低一些。在不同局部区域由于亮度、对比度、纹理的各不相同,都有各自相对应的局部二值化阈值T。

在局部自适应阈值算法中,常用的局部自适应阈值有局部邻域块的均值和局部邻域块的高斯加权和。常用的局部自适应算法有Bernsen's Method(BM)算法, Niblack's Method(NM)算法,Taxt et a1.'s Method(TFJM)算法等。

拍摄河道水面流冰的设备通常安装的环境复杂多变的野外,由于雨雪风沙等多变的环境因素,得到的图像光照不均、曝光不足、椒盐噪声严重等情况十分普遍。因此,河道水面的流冰图像处理较适合使用局部自适应阈值方法来进行二值化阈值处理。

本文的二值化算法考虑到需要移植到具体设备上的要求,所以不可能照搬任何一种算法的开发包,只采用借鉴的方式将合适的算法针对实际项目的要求加以优化后在目标设备上实现。文中使用的局部自适应二值化算法是参照OpenCV中的局部自适应函数原型来实现的,本处采用标准C语言函数实现如下:

void New_AdaptiveThreshold

(unsigned short * srcImg, unsigned short * dstImg, double maxVal,int adaptiveMethod,int thresholdType,int blockSize, double param1);

AdaptiveThreshold函数的参数说明:

unsigned short * srcImg:输入图像。

unsigned short * dstImg:输出图像。

double maxVal:使用 THRESH_BINARY 和 THRESH_BINARY_INV 的最大值。

int adaptiveMethod:自适应阈值算法使用:局部邻域块的均值ADAPTIVE_THRESH_MEAN_C或局部邻域块的高斯加权和ADAPTIVE_THRESH_GAUSSIAN_C。

int thresholdType:取阈值类型,必须是THRESH_BINARY或者THRESH_BINARY_INV。

int blockSize:计算阈值的像素邻域大小,必须为奇数,如: 3, 5, 7, ...

double param1:与选择的二值化方法有关的参数。对方法局部邻域块的均值ADAPTIVE_THRESH_MEAN_C和局部邻域块的高斯加权和ADAPTIVE_THRESH_GAUSSIAN_C,这是一个从均值或加权均值提取的常数, 有时可以是负数。

在函数New_AdaptiveThreshold中将灰度图像变换到二值图像,采用下面公式:

(1) thresholdType = THRESH_BINARY:

dstImg(x,y) = maxVal, if srcImg(x,y)>T(x,y)

0, otherwise

(2) thresholdType = THRESH_BINARY_INV:

dstImg(x,y) = 0, if srcImg (x,y)>T(x,y)

maxVal, otherwise

其中 T(x,y) 是为每一个像素点单独计算的阈值:

a、对方法 ADAPTIVE_THRESH_MEAN_C,先求出块中的均值,再减掉param1;

b、对方法ADAPTIVE_THRESH_GAUSSIAN_C,先求出块中的加权和,再减掉param1。

1.2 形态学处理

数学形态学[4](Mathematical morphology)是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,还包括用于预处理或后处理的形态学过滤、细化和修剪等。

膨胀和腐蚀作为形态学处理的基础,其他形态学算法基本上都是以这两种运算为基础的。

1.2.1膨胀运算

对于Z集合中的A和B,它们的前景用黑色,背景用白色。另fA和fB表示各自前景点的集合。定义膨胀运算为:Dilation(A,B) = {a+b| a∈A,b∈B}。是以得到B的相对于它自身原点的映像并且由z对映像进行移位为基础的。A被B膨胀是所有位移z的集合,和A至少有一个元素是重叠的。所以膨胀运算的基本过程如下:

1)用结构元素B,扫描图像A的每一个像素

2)用结构元素与其覆盖的二值图像做“与”操作

3) 如果都为0,结果图像的该像素为0,否则为1

1.2.2腐蚀运算

对于Z集合中的A和B,定义腐蚀运算为: Erosion(A,B) = {a|(a+b)∈A, a∈A,b∈B}。B对A进行腐蚀的整个过程如下:

1)用集合元素B,扫描图像A的每一个像素;

2)用集合元素与其覆盖的二值图像做“与”操作;

3)如果都为1,结果图像的该像素为1,否则为0;

腐蚀处理的结果是使原来的二值图像减小一圈。

2 河道流冰的自动提取

项目中依托图像处理技术中的局部自适应阈值二值化和形态学技术,基本实现了河道流冰的自动化提取。在整个处理过程中先将目标图像进行图像预处理,把采集的24位真彩图转换为8位的灰度图,然后使用局部自适应阈值进行二值化处理,最后交叉应用形态学中的腐蚀(Dilation)和膨胀(Erosion)运算即可。处理得到效果图如图1所示(图中上半部分为原图,下半部分为处理结果图)。

3 总结

在文中我们综合运用了图像处理中局部自适应阈值二值化技术和数学形态学中腐蚀、膨胀运算,并将其运用到了实际的项目中,基本达到了预期的效果。

参考文献:

[1] Nobuyuki Otsu.Threshold Selection Method from Gray-Level Histograms[J].Systems, Man and Cybernetics, IEEETransactions on,1979,9(1): 62-66.

[2] Judith M S.Prewitt and Mortimer L.Mendelsohn, "The analysis of cell images[J].Annnals of the New York Academy of Sciences, 1966(128): 1035-1053.

[3] Glasbey C A.An analysis of histogram-based thresholding algorithms[J]. CVGIP: Graphical Models and Image Processing , 1993(55): 532-537.

[4] 郎锐.数字图像处理学Visual C++ 实现[M].北京希望电子出版社,2003.

上一篇:迭代加权的稀疏子空间聚类 下一篇:模型渲染技术在雷达产品造型设计中的应用