论文部分内容阅读
摘要:为满足数据显示方式多样化的需要,基于VS2008开发环境和MFC应用程序框架,利用OpenCL丰富的三维图形绘制功能和颜色渲染功能生成漏磁数据的三维视图。实际测试结果表明:三维视图能够精确、直观地反映数据变化的真实性,辨识度高,颜色过渡效果理想,增强可读性和分析效率,对管道缺陷的识别与判断具有重要意义。
关键词:漏磁检测;三维视图;OpenCL;三角形剖分;插值
文献标志码:A
文章编号:1674-5124(2015)02-0084-04
引 言
随着我国石油天然气事业的发展,油气管道的建设和使用也随之繁荣。运输用管道一般埋在地下或海底,其自身运行的安全性难以保证。因此,对在役油气管道进行无损检测,十分必要。
漏磁检测是管道内检测应用中最广泛的一种无损检测技术。针对检测器采集到的数据,数据分析系统会对缺陷进行分析、识别、量化与评估,并将最终的处理结果以图形化的方式呈现给用户。美国的Tuboscope公司、德国的ROSEN公司最早采用曲线图对漏磁数据进行显示,做出了一定贡献。国内对此方面的研究也卓有成效,天津大学的魏茂安等研究了漏磁灰度图像方法,在此基础上,曹丽娜等又实现了漏磁伪彩色图像显示,进一步增强了图像质量。这些二维平面图虽然可以反映出漏磁信号的变化规律,但呈现方式单一,辨识度不高,容易出现误判,漏判等情况,难以满足用户对数据完整性和准确性的要求。
文章在准确定位管道缺陷与漏磁信号的对应关系下,研究一种精确、直观的漏磁数据三维显示方法,实现数据三维可视化,增强可读性和分析效率。
1.数据格式
采集数据主要包含两部分:磁数据和非磁数据。磁数据是指由磁敏传感器采集到的漏磁信号,也是图像显示的源数据。非磁数据则主要包括一些与管道状态和检测器状态有关的信息,如壁厚、压差、里程数等。以主磁140通道检测器为例,在检测过程中,检测器每走过2.0mm便通过触发脉冲信号使所有主磁传感器采集漏磁信号(每Im采集500次),每采集一次便可得到140个磁数据,称为一个记录块。每收集到50个记录块后便采集一次非磁数据得到1个尾块数据。50个记录块和1个尾块数据形成1个数据块,整个文件中的数据就是以数据块的形式存储的,如图1所示。
2.三维环境搭建
2.1 0penGL简介
开放性图形库(open graphics lihrary,OpenGL)是一个性能卓越的三维图形标准,是图形硬件的一种软件接口。它易于使用且功能强大,在Windows系统下可实现建模、变换、模式设置、材质设置、纹理映射等诸多功能。处理数据流程如图2所示。
2.2 三维变换
在屏幕上搭建三维场景时,视觉效果通常受4种基本变换的影响,即视点变换、模型变换、投影变换和视口变换。
视点变换在视点坐标系中进行,与世界坐标系遵循右手法则不同,它遵循左手法则,如图3所示。
当矩阵初始化glLoadldentity()后,可将glTrans-latef()作视点变换。函数参数(x,y,z)表示视点在视点坐标系中移动的位置,这里x=-25.0,y=0.0,z=0.0,意思是将视点沿X负半轴移动25个单位。
模型变换在世界坐标系中进行,可对物体实施平移glTranslatef()、旋转glRotatef()和缩放glScalef()等操作。
投影变换类似于选择相机镜头。调用透视投影函数glFrustum(),近大远小,符合人们习惯,如图4所示。在调用之前使用glMatrixMode()说明当前矩阵方式是投影GL_PROJECTION。
视口变换则是将视景体内投影的物体显示在二维的视口平面上。通常用glViewport()来定义一个视口。参数值(0,0,winWidth.winHeight)指的是屏幕窗口的实际尺寸大小。
综上所述,三维图形转换的流程如图5所示。
2.3 坐标映射
在确定X坐标时,由于每次都是等间隔采集,因此只需获得当前绘制数据的记录号、屏幕最前方数据的记录号以及确定每个记录之间的间隔,即可算出该数据的横坐标:
x=(N-No)n
(l)式中:X——当前绘制数据的横坐标;
N——当前绘制数据的记录号;
No——屏幕最前方数据的记录号;
n——记录之间的间隔。
在确定y坐标时,考虑到传感器阵列沿周向均匀分布,将其映射为钟点数。因此只需获得0号通道钟点数,传感器排列方式和通道总数即可算出第n号通道所占分钟数,以逆时针排列为例:式中:To——0号通道所占分钟数;
n——所求通道的通道号;
M——主磁传感器的通道总数。
若Tn<0,则使,最后将所占分钟数转化为具体钟点数即可。
在确定Z坐标时,为防止图像显示不完整,我们采用动态绘图法,即根据当前可显示数据的最小值作为基准参考,对实际数据进行一定的处理再绘制。计算公式可表示为
Z=(a-anin)·p/q
(3)式中:a——当前绘制数据值;
amin——当前可显示数据最小值;
q——当前可显示数据最大值与最小值的差值;
p——沿Z轴方向的最大绘图高度。
3.三维曲面生成
OpenGL常用三角形作为基本图元生成三维图形和曲面,以保证各个点在同一平面内,曲面生成即遍历各数据点。采用三角形剖分算法,在外层的迭代中遍历所有行,内层的迭代中遍历所有列,列上数据点的遍历顺序需要满足以下条件:
1)数据点按每3个l组的方式进行拆分。 2)每组3个点遵循同一排列次序(顺时针)。
3)相邻的2组之间存在2个交集点。
OpenGL提供了多种三角形图元的绘制方法,其中GL_TRIANGLE_STRIP用于绘制一组相连的三角形。这种方法避免指定相互连接的三角形条带中重复出现的顶点。曲面生成过程见图6。
4.优化处理
4.1 数据插值
根据漏磁数据特点,我们选择分段线性捅值【9]。在相邻两数值区间[a,b]中插入(n,-l)个数值,将该区间划分为n段,各段点为xo=a,XI,x2…xn=b,在各个区间内做函数f(x)的线性捅值,设捅值函数为g(x)=gi(x),则:
将各个区间的捅值函数gi(x)连接起来,就可以得到了区间[a,6]的插值函数g(x),再根据线性插值的误差公式进行收敛性判断,从而完成插值操作以构造出更多的图像数据,将原有的低分辨率的数据扩充为高分辨率的数据进行显示,改善图像质量。
4.2 颜色渲染
Z轴反映了数据值大小,还可加入颜色的变化。在OpenGL中可以指定顶点坐标的同时指定顶点颜色,若使用缺省设置,则会自动生成2个顶点颜色之间的过渡色。采用的是彩虹编码法,R、G、B3种变换器的变换函数表达式为
5.软件系统实现
本数据分析软件系统以Visual Sludi0 2008作为开发环境,使用MFC应用程序框架对系统进行开发。在该系统中使用OpenGL类库进行了三维视图设计。
5.1 测试结果
选取2GB容量的胜利油田某段在役管道检测数据进行三维显示,效果理想。由图7可见,存在两处磁场强度异常的区域,红色区域突出,数据值较高,蓝色区域凹陷,数据值较小,绿色区域平缓,数据值稳定。对其分析可知两处均为腐蚀缺陷。X轴里程范围为2731.26~2733.96m,y轴钟点范围为1:16~5:31,Z轴最大值为173.6Gs(1 Gs=10-4T),最小值为91.2Gs,平均值为106.6Gs。
5.2 辅助操作
三维视图可实现图像拖动、数据跳转和视图缩放。缩放效果如图8所示,其中(a)为原缺陷图,(b)为放大后的缺陷图。
此外,本软件系统还实现了三维视图与其他视图的自由切换,并且支持同时打开多个窗口,系统内部通过全局映射机制以保证多种视图的同步显示与更新,保证了分析人员能够全面综合进行比对分析,快速定位管道缺陷,评价管道使用状况,给出维护建议。
6.结束语
根据管道漏磁缺陷内检测器提供的漏磁检测数据,基于Visual Studi0 2008开发环境和MFC应用程序框架,利用OpenGL丰富的三维图形绘制功能和颜色渲染功能生成数据三维视图,经过测试,不同磁场强度对应不同颜色,从而精确、直观地显示出漏磁数据的分布特点。此外,图像拖动、数据跳转、缩放等人机交互操作的实现,强化了数据分析功能,帮助用户在最短时间内了解了检测数据的完整性和准确性,也有助于对缺陷进行识别和量化,大大提高了工作效率和工作质量。
关键词:漏磁检测;三维视图;OpenCL;三角形剖分;插值
文献标志码:A
文章编号:1674-5124(2015)02-0084-04
引 言
随着我国石油天然气事业的发展,油气管道的建设和使用也随之繁荣。运输用管道一般埋在地下或海底,其自身运行的安全性难以保证。因此,对在役油气管道进行无损检测,十分必要。
漏磁检测是管道内检测应用中最广泛的一种无损检测技术。针对检测器采集到的数据,数据分析系统会对缺陷进行分析、识别、量化与评估,并将最终的处理结果以图形化的方式呈现给用户。美国的Tuboscope公司、德国的ROSEN公司最早采用曲线图对漏磁数据进行显示,做出了一定贡献。国内对此方面的研究也卓有成效,天津大学的魏茂安等研究了漏磁灰度图像方法,在此基础上,曹丽娜等又实现了漏磁伪彩色图像显示,进一步增强了图像质量。这些二维平面图虽然可以反映出漏磁信号的变化规律,但呈现方式单一,辨识度不高,容易出现误判,漏判等情况,难以满足用户对数据完整性和准确性的要求。
文章在准确定位管道缺陷与漏磁信号的对应关系下,研究一种精确、直观的漏磁数据三维显示方法,实现数据三维可视化,增强可读性和分析效率。
1.数据格式
采集数据主要包含两部分:磁数据和非磁数据。磁数据是指由磁敏传感器采集到的漏磁信号,也是图像显示的源数据。非磁数据则主要包括一些与管道状态和检测器状态有关的信息,如壁厚、压差、里程数等。以主磁140通道检测器为例,在检测过程中,检测器每走过2.0mm便通过触发脉冲信号使所有主磁传感器采集漏磁信号(每Im采集500次),每采集一次便可得到140个磁数据,称为一个记录块。每收集到50个记录块后便采集一次非磁数据得到1个尾块数据。50个记录块和1个尾块数据形成1个数据块,整个文件中的数据就是以数据块的形式存储的,如图1所示。
2.三维环境搭建
2.1 0penGL简介
开放性图形库(open graphics lihrary,OpenGL)是一个性能卓越的三维图形标准,是图形硬件的一种软件接口。它易于使用且功能强大,在Windows系统下可实现建模、变换、模式设置、材质设置、纹理映射等诸多功能。处理数据流程如图2所示。
2.2 三维变换
在屏幕上搭建三维场景时,视觉效果通常受4种基本变换的影响,即视点变换、模型变换、投影变换和视口变换。
视点变换在视点坐标系中进行,与世界坐标系遵循右手法则不同,它遵循左手法则,如图3所示。
当矩阵初始化glLoadldentity()后,可将glTrans-latef()作视点变换。函数参数(x,y,z)表示视点在视点坐标系中移动的位置,这里x=-25.0,y=0.0,z=0.0,意思是将视点沿X负半轴移动25个单位。
模型变换在世界坐标系中进行,可对物体实施平移glTranslatef()、旋转glRotatef()和缩放glScalef()等操作。
投影变换类似于选择相机镜头。调用透视投影函数glFrustum(),近大远小,符合人们习惯,如图4所示。在调用之前使用glMatrixMode()说明当前矩阵方式是投影GL_PROJECTION。
视口变换则是将视景体内投影的物体显示在二维的视口平面上。通常用glViewport()来定义一个视口。参数值(0,0,winWidth.winHeight)指的是屏幕窗口的实际尺寸大小。
综上所述,三维图形转换的流程如图5所示。
2.3 坐标映射
在确定X坐标时,由于每次都是等间隔采集,因此只需获得当前绘制数据的记录号、屏幕最前方数据的记录号以及确定每个记录之间的间隔,即可算出该数据的横坐标:
x=(N-No)n
(l)式中:X——当前绘制数据的横坐标;
N——当前绘制数据的记录号;
No——屏幕最前方数据的记录号;
n——记录之间的间隔。
在确定y坐标时,考虑到传感器阵列沿周向均匀分布,将其映射为钟点数。因此只需获得0号通道钟点数,传感器排列方式和通道总数即可算出第n号通道所占分钟数,以逆时针排列为例:式中:To——0号通道所占分钟数;
n——所求通道的通道号;
M——主磁传感器的通道总数。
若Tn<0,则使,最后将所占分钟数转化为具体钟点数即可。
在确定Z坐标时,为防止图像显示不完整,我们采用动态绘图法,即根据当前可显示数据的最小值作为基准参考,对实际数据进行一定的处理再绘制。计算公式可表示为
Z=(a-anin)·p/q
(3)式中:a——当前绘制数据值;
amin——当前可显示数据最小值;
q——当前可显示数据最大值与最小值的差值;
p——沿Z轴方向的最大绘图高度。
3.三维曲面生成
OpenGL常用三角形作为基本图元生成三维图形和曲面,以保证各个点在同一平面内,曲面生成即遍历各数据点。采用三角形剖分算法,在外层的迭代中遍历所有行,内层的迭代中遍历所有列,列上数据点的遍历顺序需要满足以下条件:
1)数据点按每3个l组的方式进行拆分。 2)每组3个点遵循同一排列次序(顺时针)。
3)相邻的2组之间存在2个交集点。
OpenGL提供了多种三角形图元的绘制方法,其中GL_TRIANGLE_STRIP用于绘制一组相连的三角形。这种方法避免指定相互连接的三角形条带中重复出现的顶点。曲面生成过程见图6。
4.优化处理
4.1 数据插值
根据漏磁数据特点,我们选择分段线性捅值【9]。在相邻两数值区间[a,b]中插入(n,-l)个数值,将该区间划分为n段,各段点为xo=a,XI,x2…xn=b,在各个区间内做函数f(x)的线性捅值,设捅值函数为g(x)=gi(x),则:
将各个区间的捅值函数gi(x)连接起来,就可以得到了区间[a,6]的插值函数g(x),再根据线性插值的误差公式进行收敛性判断,从而完成插值操作以构造出更多的图像数据,将原有的低分辨率的数据扩充为高分辨率的数据进行显示,改善图像质量。
4.2 颜色渲染
Z轴反映了数据值大小,还可加入颜色的变化。在OpenGL中可以指定顶点坐标的同时指定顶点颜色,若使用缺省设置,则会自动生成2个顶点颜色之间的过渡色。采用的是彩虹编码法,R、G、B3种变换器的变换函数表达式为
5.软件系统实现
本数据分析软件系统以Visual Sludi0 2008作为开发环境,使用MFC应用程序框架对系统进行开发。在该系统中使用OpenGL类库进行了三维视图设计。
5.1 测试结果
选取2GB容量的胜利油田某段在役管道检测数据进行三维显示,效果理想。由图7可见,存在两处磁场强度异常的区域,红色区域突出,数据值较高,蓝色区域凹陷,数据值较小,绿色区域平缓,数据值稳定。对其分析可知两处均为腐蚀缺陷。X轴里程范围为2731.26~2733.96m,y轴钟点范围为1:16~5:31,Z轴最大值为173.6Gs(1 Gs=10-4T),最小值为91.2Gs,平均值为106.6Gs。
5.2 辅助操作
三维视图可实现图像拖动、数据跳转和视图缩放。缩放效果如图8所示,其中(a)为原缺陷图,(b)为放大后的缺陷图。
此外,本软件系统还实现了三维视图与其他视图的自由切换,并且支持同时打开多个窗口,系统内部通过全局映射机制以保证多种视图的同步显示与更新,保证了分析人员能够全面综合进行比对分析,快速定位管道缺陷,评价管道使用状况,给出维护建议。
6.结束语
根据管道漏磁缺陷内检测器提供的漏磁检测数据,基于Visual Studi0 2008开发环境和MFC应用程序框架,利用OpenGL丰富的三维图形绘制功能和颜色渲染功能生成数据三维视图,经过测试,不同磁场强度对应不同颜色,从而精确、直观地显示出漏磁数据的分布特点。此外,图像拖动、数据跳转、缩放等人机交互操作的实现,强化了数据分析功能,帮助用户在最短时间内了解了检测数据的完整性和准确性,也有助于对缺陷进行识别和量化,大大提高了工作效率和工作质量。