基于超声成像测井数据采集过程中图像实时显示的方法与流程

文档序号:17258903发布日期:2019-03-30 09:31阅读:261来源:国知局
基于超声成像测井数据采集过程中图像实时显示的方法与流程

本发明属于超声波成像测井成像技术领域,具体涉及一种基于超声波成像测井仪在采集过程中图像实时显示在屏幕上的方法。



背景技术:

超声波成像测井是在井下采用超声波换能器旋转的方式对井壁进行全方位360度扫描,采集超声波经井壁反射回来的幅值和旅行时差信号,然后上传至地面计算机采集软件,通过图像处理技术实时呈现幅值和旅行时差二维图像,从而反映井壁信息。

换能器每旋转一周,发送和接收若干次超声波信号,每次信号为一个横向采样点,采样点数越多,横向分辨率越高。换能器每旋转一周将采集的幅值和旅行时差信息同方位角、顶角等数据打包一同上传至地面系统。地面系统将接收到的井下数据与检测到的测井绞车当前深度数据再一同传输至计算机。计算机上的采集软件将幅值、旅行时差原始数据转换成对应的图像颜色,绘制成二维图像后输出到屏幕上,实现实时观察超声波成像测井结果。

然而超声成像测井数据在绘制二维图像过程中,由于数据量非常大,绘制的图幅也很大,通常会出现绘图速度慢,滞后探管的采集位置。同时在采集过程中,需要使用滚动条回看已绘制完成的图像,每次读取或生成图像都需要较长时间。



技术实现要素:

本发明针对现有超声成像图像实时显示技术存在的问题,提出一种基于超声成像测井数据采集过程中图像实时显示的方法,该方法能实时、快速绘制二维图像的方法,并可在采集过程中随时通过滚动条查看已绘制完成的图像。

为了实现上述方法,本发明的技术方案如下:

一种基于超声成像测井数据采集过程中图像实时显示的方法,该方法包括以下步骤:

步骤(1)分配绘图缓冲区、定义二维数组及定义渐变色棒;

步骤(2)启动接收数据线程、等待接收数据;

步骤(3)判断是否接收到地面控制器发送的井下数据和绞车深度;

步骤(4)启动绘图线程、给上述步骤(3)中得到的井下数据中的幅值和旅行时差分配临时绘图缓冲区;

步骤(5)将上述步骤(4)得到幅值和旅行时差进行颜色转换、并输出到各自对应的临时绘图缓冲区;

步骤(6)根据测井方向,将上述步骤(5)中得到的临时绘图缓冲区中的图像,按不同方式输出到步骤(1)中建立的绘图缓冲区中,完成基于超声成像测井数据采集过程中图像实时显示。

所述的步骤(1)具体包括以下步骤:步骤(1.1)分配绘图缓冲区;步骤(1.2)定义二维数组;步骤(1.3)定义渐变色棒。

所述的步骤(1.1)分配绘图缓冲区具体如下:在内存中建立两个绘图缓冲区ampbmp和timebmp,分别存储超声波幅值图像和旅行时差图像数据;

所述的步骤(1.2)定义二维数组具体如下:定义一个数据类型为整型的二维数组databuffer,用于存储超声波幅值、旅行时差原始数据、深度数据、方位角和顶角;

所述的步骤(1.3)定义渐变色棒具体如下:定义一个渐变色色棒,将色棒分成n种颜色,将n种颜色存入颜色缓冲区colorbuffer中。

所述的步骤(2)具体包括以下步骤:在地面采集软件中启动超声波成像探管中的超声波换能器,再启动计算机接数据线程,处于等待接收数据状态。

所述的步骤(3)具体包括以下步骤:

步骤(3.1)超声波换能器开始发送并接收井壁反射回来的幅值和旅行时差信号,井下探管就将幅值、旅行时差数据与方位角、顶角数据经绞车电缆一同发送至地面控制器;

步骤(3.2)地面控制器接收到井下数据后,立即读取绞车深度,并将井下数据与绞车深度打包经usb传输至计算机;

步骤(3.3)当计算机接收到地面控制器发送的井下数据和绞车深度时,计算机就将接收到的幅值、旅行时差、方位角、顶角数据和绞车深度存入二维数组databuffer数组第0行中,每向二维数组databuffer中存入一行数据,行数自动加1,同时计算当前接收到数据深度与第0行数据深度差,当深度差大于等设置设置深度值时,记录二维数组databuffer中的总行数rownum,执行步骤(4)启动绘图线程;同时把二维数组databuffer数据传递给绘图线程函数,二维数组databuffer数据存储位置再返回至第0行,等待下次接收并存储。

步骤(3.4)当计算机没有接收到地面控制系统发送的井下数据和绞车深度时,则执行步骤(2),继续等待接收数据。

所述的步骤(4)具体包括以下步骤:

绘图线程启动后,在内存中分配两个临时绘图缓冲区ampbmptemp和timebmptemp,分别用于存储上述步骤(3)中得到的databuffer中的幅值和旅行时差图像。

所述的步骤(4)中幅值和旅行时差图像的宽度均占获取的屏幕分辨率尺寸的45%,幅值和旅行时差图像的高度为databuffer中第rownum行减去第0行深度的绝对值乘以缩放比例。

所述的步骤(5)具体包括以下步骤:

步骤(5.1)将上述步骤(4)得到幅值和旅行时差图像进行颜色转换

将databuffer中幅值数据和旅行时差每个采样点数据转换为颜色缓冲区colorbuffer中对应的颜色,共计360个颜色,计算公式为:

c=a*512/4096。

其中c为颜色缓冲区colorbuffer中对应颜色的位置,a为幅值或旅行时差的原始数据;

步骤(5.2)将上述步骤(5.1)中颜色转换后的幅值数据和旅行时差输出到各自对应的临时绘图缓冲区

将幅值数据和旅行时差对应的颜色按行,先输出到各自对应的临时绘图缓冲区ampbmptemp和timebmptemp中,行数为rownum。

所述的步骤(6)具体包括以下步骤:

步骤(6.1)当测井方向是自上向下时,直接将上述步骤(5.2)中得到的临时绘图缓冲区ampbmptemp和timebmptemp中的图像拼接到各自对应的ampbmp和timebmp绘图缓冲区中,ampbmp和timebmp绘图缓冲区的高度增加值为ampbmptemp或timebmptemp的高度,并记录下当前高度currentheight。深度绘制上述取整后较大的数据,从深度绘图缓冲区depthbmp顶部向下绘制;

步骤(6.2)如果测井方向是自下向上,先将上述步骤(5.2)中得到的临时绘图缓冲区ampbmptemp和timebmptemp中的图像做垂向的镜像处理,然后再拼接到ampbmp和timebmp绘图缓冲区的最底部,当前绘图结束后,高度为ampbmp和timebmp总高度减去ampbmptemp和timebmptemp的高度,并记录下当前高度currentheight。深度绘制上述取整后较小的数据,从深度绘图缓冲区的底部向上绘制;

步骤(6.3)输出ampbmp、timebmp和dethpbmp中的图像到屏幕,绘图线程挂起,处于等待状态,等待下次绘图,完成基于超声成像测井数据采集过程中图像实时显示。

所述的步骤(1.3)中的超声波幅值图像数据绘图缓冲区ampbmp的宽度占屏幕分辨率尺寸的45%,高度为100000像素;旅行时差图像数据绘图缓冲区depthbmp的宽度占屏幕分辨率尺寸的10%,高度为100000像素;所述的步骤(1.3)中的n默认设置为512;所述的步骤(4)中的缩放比例默认设置为0.01。

本发明的有益技术效果在于:本发明通过采用在内存中建立绘图缓冲区方式,将要绘制的图像首先保存在绘图缓冲区中,当屏幕要显示图像时直接读取内存,虽然在一定程度上消耗内存较大,但可以提高绘图速度,不会产生显示绘图延迟、屏幕闪烁的现象。在需要使用滚动条显示其它深度的图像时,可在屏幕上立即显示,提高了在超声波成像测井数据采集过程中实时显示、查看图像的效果。

附图说明

图1为本发明所提供的一种基于超声成像测井数据采集过程中图像实时显示的方法的流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细说明。

如图1所示,本发明所提供的基于超声成像测井数据采集过程中图像实时显示的方法,该方法包括以下步骤:

步骤(1)分配绘图缓冲区、定义二维数组及定义渐变色棒,具体包括以下步骤:

步骤(1.1)分配绘图缓冲区

启动计算机中的地面采集软件。软件启动后,在内存中建立两个绘图缓冲区ampbmp和timebmp,分别存储超声波幅值图像和旅行时差图像数据。超声波幅值图像数据绘图缓冲区ampbmp的宽度占屏幕分辨率尺寸的45%,高度为100000像素。旅行时差图像数据绘图缓冲区depthbmp的宽度占屏幕分辨率尺寸的10%,高度为100000像素,。

步骤(1.2)定义二维数组

定义一个数据类型为整型的二维数组databuffer,用于存储超声波幅值、旅行时差原始数据、深度数据、方位角和顶角。

步骤(1.3)定义渐变色棒

定义一个渐变色色棒,将色棒分成n种颜色,将n种颜色存入颜色缓冲区colorbuffer中。n默认设置为512。根据成像效果可后期人为更改n值。

步骤(2)启动接收数据线程、等待接收数据

在地面采集软件中启动超声波成像探管中的超声波换能器,再启动计算机接数据线程,处于等待接收数据状态。

步骤(3)判断是否接收到地面控制器发送的井下数据和绞车深度,具体包括以下步骤:

步骤(3.1)超声波换能器开始发送并接收井壁反射回来的幅值和旅行时差信号,换能器每旋转一周,发射并接收180次信号。一周结束后,井下探管就将幅值、旅行时差数据与方位角、顶角数据经绞车电缆一同发送至地面控制器。

步骤(3.2)地面控制器接收到井下数据后,立即读取绞车深度,并将井下数据与绞车深度打包经usb传输至计算机。

井下数据包括幅值、旅行时差、方位角和顶角数据。

步骤(3.3)当计算机接收到地面控制器发送的井下数据和绞车深度时,计算机就将接收到的幅值、旅行时差、方位角、顶角数据和绞车深度存入二维数组databuffer数组第0行中,每向二维数组databuffer中存入一行数据,行数自动加1,同时计算当前接收到数据深度与第0行数据深度差,当深度差大于等设置深度40毫米时,记录二维数组databuffer中的总行数rownum,执行步骤(4)启动绘图线程;同时把二维数组databuffer数据传递给绘图线程函数,二维数组databuffer数据存储位置再返回至第0行,等待下次接收并存储。

步骤(3.4)当计算机没有接收到地面控制系统发送的井下数据和绞车深度时,则执行步骤(2),继续等待接收数据。

步骤(4)启动绘图线程、给上述步骤(3)中得到的井下数据中的幅值和旅行时差分配临时绘图缓冲区,具体包括以下步骤:

绘图线程启动后,在内存中分配两个临时绘图缓冲区ampbmptemp和timebmptemp,分别用于存储上述步骤(3)中得到的databuffer中的幅值和旅行时差图像,幅值和旅行时差图像的宽度均占获取的屏幕分辨率尺寸的45%,幅值和旅行时差图像的高度为databuffer中第rownum行减去第0行深度的绝对值乘以缩放比例,缩放比例默认设置为0.01。

步骤(5)将上述步骤(4)得到幅值和旅行时差进行颜色转换、并输出到各自对应的临时绘图缓冲区,具体包括以下步骤:

步骤(5.1)将上述步骤(4)得到幅值和旅行时差图像进行颜色转换

将databuffer中幅值数据和旅行时差每个采样点数据转换为颜色缓冲区colorbuffer中对应的颜色,共计360个颜色,计算公式为:

c=a*512/4096。

其中c为颜色缓冲区colorbuffer中对应颜色的位置,a为幅值或旅行时差的原始数据,其范围为0~4095,512为所述的颜色个数。

步骤(5.2)将上述步骤(5.1)中颜色转换后的幅值数据和旅行时差输出到各自对应的临时绘图缓冲区

将幅值数据和旅行时差对应的颜色按行,先输出到各自对应的临时绘图缓冲区ampbmptemp和timebmptemp中,行数为rownum。

步骤(6)根据测井方向,将上述步骤(5.2)中得到的临时绘图缓冲区中的图像,按不同方式输出到步骤(1.1)中建立的绘图缓冲区中,完成基于超声成像测井数据采集过程中图像实时显示。具体包括以下步骤:

步骤(6.1)当测井方向是自上向下时,直接将上述步骤(5.2)中得到的临时绘图缓冲区ampbmptemp和timebmptemp中的图像拼接到各自对应的ampbmp和timebmp绘图缓冲区中,ampbmp和timebmp绘图缓冲区的高度增加值为ampbmptemp或timebmptemp的高度,并记录下当前高度currentheight。深度绘制上述取整后较大的数据,从深度绘图缓冲区depthbmp顶部向下绘制。

步骤(6.2)如果测井方向是自下向上,先将上述步骤(5.2)中得到的临时绘图缓冲区ampbmptemp和timebmptemp中的图像做垂向的镜像处理,然后再拼接到ampbmp和timebmp绘图缓冲区的最底部,当前绘图结束后,高度为ampbmp和timebmp总高度减去ampbmptemp和timebmptemp的高度,并记录下当前高度currentheight。深度绘制上述取整后较小的数据,从深度绘图缓冲区的底部向上绘制。

步骤(6.3)输出ampbmp、timebmp和dethpbmp中的图像到屏幕,绘图线程挂起,处于等待状态,等待下次绘图,完成基于超声成像测井数据采集过程中图像实时显示。

上面结合附图和实施例对本发明作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。本发明中未作详细描述的内容均可以采用现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1