用rgb数组对列包裹图片局部放大的方法及装置和显示器
技术领域
1.本发明涉及安检判图技术领域,具体涉及用rgb数组对列包裹图片局部放大的方法及装置和显示器。
背景技术:2.在安检的集中判图场景下,整个系统包括:扫描包裹形成包裹x光图片的x光机、获得包裹x光图片中违禁品识别结果的智能识图盒子、集中判图工作站的客户端。
3.目前,集中判图工作站的客户端是将x光机扫描并切割后的包裹x光图片展示在屏幕上,供判图员对该包裹的包裹x光图片中的违禁品进行进一步判断并标记。该屏幕每次所获得画面信息是一张对应于完整包裹的包裹x光图片。这样的方法会产生一下问题:1.图片拉取为了节省网络带宽,会采用url传输,在拉取时会有网络加载消耗,造成延迟;2.图片展示的方式为静态平铺的方式,判图员进行长时间判图时容易产生疲劳,并且造成判图不及时、漏判、误判等风险;3.判图员基本原为安检值机员,由于之前经常观察x光机的扫描成像视频(由左到右或由右到左动态成像),调岗之后会重新适应新的判图方式,且有培训成本。
4.为了解决上述问题,我们创造了一种基于列数据的成像方法,该方法是将包裹x光图片经智能识图盒子的切割、违禁品识别后,将连续的视频图像切割为一个包裹图片,该包裹图片给切割为列数据,将列数据发送给判图用的客户端,在客户端成像,对于客户端而言,其需要对一个包裹图片所对应的所有列数据按照顺序依次在屏幕s上成像,达到仿逐列扫描成像的效果。一般,一组列数据对应1个列图片,相当于将一个完整的包裹图片沿宽度分割为多个列图片。
5.若采用上述列数据成像的技术,对于放大观看的需求时,比如某个违禁品需要放大观看才能确定时,一般需要在客户端配置放大功能。一般对于一张完整的包裹图片而言,由于对象为1张图片,因此可以直接使用现有的定点、抽取、放大、显示的技术手段。但在列数据成像的技术中,由于一张完整的包裹图片被分割成多个列数据,一个列数据转为一张列图片进行成像显示,因此,当我们在任意一个列图片中选定一个放大基准点后,再采用抽取、放大、显示的技术,则无法放大相邻列图片的内容,这会导致放大区域缺失,若要放大相邻内容,则需要对相邻列图片进行特定的算法进行计算,对于系统计算开销负担大。同时,由于列数据成像技术是仿扫描模式,所有列图片都会逐列移动,因此,放大基准点不好被锁定,需停止移动,待放大后或取消放大后,恢复移动。
6.鉴于以上技术缺陷,本发明需要寻找一种在面对列数据成像技术的放大方法。
技术实现要素:7.本发明的目的在于提供用rgb数组对列包裹图片局部放大的方法及装置和显示器。为了解决上述问题,本发明采用使用列数据进行动态仿扫描成像技术。该技术应用于集中判图工作站的客户端中,在使用列数据进行动态仿扫描成像技术时,利用多维数组缓存技术,按顺序同步记载一个包裹图片的一个列图片的像素值,以备放大时被调用,从而可以
获取跨越多列的放大区域,用于放大显示。
8.用rgb数组对列包裹图片局部放大的方法,包括以下步骤:
9.d1.检测用户在屏幕s中的放大请求,并获得请求放大点a在列图片中的坐标;
10.d2.以放大点a在列图片中的坐标转换到rgb三维数组中的坐标为圆心,以r为半径,设置rgb值提取范围f;
11.d3.从rgb三维数组中抽取rgb值提取范围f内的rgb三维数据,记为rgb三维数据x1;
12.d4.将rgb三维数据x1按照预定的放大倍数或用户请求的放大倍数放大,获得放大后的rgb三维数据x2,复制rgb值数据x2得到新的rgb三维数组rgbarray_1;
13.d5.将rgb三维数组rgbarray_1中的rgb值按顺序绘制在放大画板g中;
14.d6.渲染放大画板g进行显示。
15.具体的,还包括以下步骤:
16.c1.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收;
17.c2.将列数据字节数组转换为列图片并在屏幕s中按顺序渲染显示。
18.具体的,还包括以下步骤:
19.a1.创建一个c为缺省的rgb三维数组,空白rgb三维数组中的元素记为:rgbarray=int[a][b][c];其中,a为一个像素点的宽度方向的位点;b为一个像素点的高度方向的位点;c表示为一个像素点的rgb值,一个元素代表一个像素点。
[0020]
a2.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收时,按每接收一组列数据字节数组刷新一次的规则,顺序刷新c为空白的rgb三维数组;
[0021]
刷新c为缺省的rgb三维数组的过程为:遍历列数据字节数组,计算列数据字节数组中对应列图片的每一个像素点的rgb三维数据,rgb三维数据包括:a'、b'、c',a'为一个像素点的宽度方向的位点;b'为一个像素点的高度方向的位点;c'表示为一个像素点的rgb值,将c'写入rgbarray中,以对[c]刷新;
[0022]
若当列数据字节数组为1个x光包裹图片的首列,则直接将c'按a'=[a]、b'=[b]的对应关系写入[a][b]对应的c中;
[0023]
若当列数据字节数组为1个x光包裹图片的首列之后的列,则将c'按a'+zw=[a]、b'=[b]的对应关系写入[a][b]对应的c中,zw为之前所有列数据字节数组所对应列图片的总宽度。
[0024]
列图片并在屏幕s中按顺序渲染显示在屏幕s的边缘处。
[0025]
具体的,所述r为系统提前配置参数或用户的放大请求,所述放大倍数为系统提前配置参数或用户的放大请求。
[0026]
具体的,所述坐标包括宽度方向的位点、高度方向的位点。
[0027]
另一方面,用rgb数组对列包裹图片局部放大的装置,
[0028]
屏幕s;
[0029]
存储器;
[0030]
一个或多个处理器;及
[0031]
一个或多个模块,存在存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括:
[0032]
检测用户在屏幕s中的放大请求,并获得请求放大点a在列图片中的坐标的模块;
[0033]
以放大点a在列图片中的坐标为圆心,以r为半径,设置rgb值提取范围f的模块;
[0034]
从rgb三维数组中抽取rgb值提取范围f内的rgb三维数据,记为rgb三维数据x1的模块;
[0035]
将rgb三维数据x1按照预定的放大倍数或用户请求的放大倍数放大,获得放大后的rgb三维数据x2,复制rgb值数据x2得到新的rgb三维数组rgbarray_1的的模块;
[0036]
将rgb三维数组rgbarray_1中的rgb值按顺序绘制在放大画板g中的模块;
[0037]
渲染放大画板g进行显示的的模块。
[0038]
具体的,所述一个或多个模块还包括:
[0039]
对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收的模块;
[0040]
将列数据字节数组转换为列图片并在屏幕s中按顺序渲染显示的模块。
[0041]
具体的,所述一个或多个模块还包括:
[0042]
a1.创建一个c为缺省的rgb三维数组的模块,空白rgb三维数组中的元素记为:rgbarray=int[a][b][c];其中,a为一个像素点的宽度方向的位点;b为一个像素点的高度方向的位点;c表示为一个像素点的rgb值,一个元素代表一个像素点。
[0043]
a2.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收时,按每接收一组列数据字节数组刷新一次的规则,顺序刷新c为空白的rgb三维数组的模块;
[0044]
刷新c为缺省的rgb三维数组的过程为:遍历列数据字节数组,计算列数据字节数组中对应列图片的每一个像素点的rgb三维数据,rgb三维数据包括:a'、b'、c',a'为一个像素点的宽度方向的位点;b'为一个像素点的高度方向的位点;c'表示为一个像素点的rgb值,将c'写入rgbarray中,以对[c]刷新;
[0045]
若当列数据字节数组为1个x光包裹图片的首列,则直接将c'按a'=[a]、b'=[b]的对应关系写入[a][b]对应的c中;
[0046]
若当列数据字节数组为1个x光包裹图片的首列之后的列,则将c'按a'+zw=[a]、b'=[b]的对应关系写入[a][b]对应的c中,zw为之前所有列数据字节数组所对应列图片的总宽度。其中,a,a'都代表的了宽度方向的位点,因此,使得a'+zw=[a]的本质是一种补宽对应关系,即记录已写入的列图片的总宽度,然后补宽计算后查询对应的宽度方向的位点,最终找到该宽度位点后,写入rgb值。
[0047]
另一方面,用rgb数组对列包裹图片局部放大的显示器,显示器至少包括以下画面状态;
[0048]
第一画面状态:一个包裹图片的列图片按顺序在屏幕s上渲染显示;
[0049]
第二画面状态:用户在屏幕s中的列图片上触发放大请求后,屏幕s中出现放大画板g。
[0050]
本发明的设计原理为:在本发明中,可以对于1个包裹图片创建一个rgb三维数组,rgb三维数组为一个临时缓存数据。rgb三维数组一般在一个包裹图片的首个列图片出现时被创建,下一个包裹图片的首个列图片出现后被重新创建,也可以创建一个宽度和高度位点范围与屏幕s相同的rgb三维数组,总之,创建1个宽度和高度位点范围至少大于1个列图片范围的rgb三维数组。该rgb三维数组用于随时记录新的列图片中的rgb值,以备放大时调用。
[0051]
本发明在屏幕s导入列数据时,将列数据(二进制)转为列图片并对列图片进行渲染显示,在该过程中,同步基于当前列数据的rgb值刷新rgb三维数组,用户看不见rgb三维数组,仅可以看到动态的一个一个的列图片按顺序进入到屏幕s中。需要特别强调是,本发明中,由于1个列数据对应1个独立的列图片,其解析为列图片后,每一个列图片第一行、第一个像素点的位点都是从(0,0)重新开始的;因此,当用户选择了某一个列图片上的放大点a后,其对应的放大范围无法延伸到相邻的列图片中,为了实现跨列放大,本发明创建了上述能容纳多个列图片rgb值的rgb三维数组,该rgb三维数组按列数据进入顺序刷新,刷新一次,则导入一组新的rgb值,且是连续的。该刷新过程实际上实现了将不同列的列图片的rgb值记录在一个完整的顺序数组中,该数组中没有出现数组断开的情况。为了实现将不同的列图片的rgb值记录在一个完整的顺序数组中,本发明在第二列的列图片及其之后的列图片时,按照补宽对应关系写入。
[0052]
上述rgb三维数组刷新过程中,随时可以响应放大请求,无需等待列图片组成一个完整的包裹图片。
[0053]
当用户触发了放大请求后,系统捕捉用户在屏幕s上的放大点a,放大点a映射在列图片上,获得该放大点在列图片中的坐标,同时以该坐标寻找到对应在rgb三维数组中的坐标,此时,以该坐标为基准创建一个提取范围f,由于列图片的rgb值连续复刻到rgb三维数组中的。因此,可以直接将提取范围f映射到rgb三维数组中,随后进行提取、放大、写入到放大画板g、显示。该放大画板g是可以自由移动的,不受放大点a的限制,因为在标定放大点a时,系统已锁定了该坐标位置,后续的抽取、放大、显示并不依赖列图片,而是依赖rgb三维数组,而rgb三维数组可以同时包含已进入的跨多列的图像数据(未进入的列图片不能获得),因此本发明可以实现跨列放大和锁定放大,并不会受列图片的移动而需要增设复杂的运算方法。
[0054]
本发明的有益效果为:
[0055]
1、解决了列数据显示难以放大的问题。
[0056]
2、放大过程中,列数据正常进入、列图片依然按顺序进入、无需列图片停止进入。
[0057]
3、可以实现跨列放大,当任选1个列图片中的点作为放大点a时,可以跨越到相邻列的内容进行放大。
[0058]
4、放大窗口,即放大画板g,不受放大点a的位置约束,可以自由移动。
附图说明
[0059]
图1为所有包裹图片全部采用列图片逐列成像的现有技术。
[0060]
图2为本发明当前包裹图片采用列图片逐列成像、之前包裹图片采用画板图片成像的处理流程示意图。
[0061]
图3为本发明接收首列图片时的成像示意图。
[0062]
图4为本发明接收尾列图片时的成像示意图。
[0063]
图5为本发明在俯视屏幕时的成像示意图。
[0064]
图6为一个包裹图片的示意图。
[0065]
图7为一个包裹图片对应的画板上叠加违禁品标识框像素值后的示意图。
[0066]
图8为用rgb数组对列包裹图片局部放大的方法的流程示意图。
[0067]
图9为用rgb数组对列包裹图片局部放大的效果图。
[0068]
图10为缺省c的rgb三维数组。
[0069]
图11为列图片1的rgb三维数据。
[0070]
图12为列图片2的rgb三维数据。
[0071]
图13为第一次刷新rgb三维数组。
[0072]
图14为第一次刷新rgb三维数组。
具体实施方式
[0073]
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
[0074]
实施例1
[0075]
如图8-图14所示。
[0076]
用rgb数组对列包裹图片局部放大的方法,包括以下步骤:
[0077]
d1.检测用户在屏幕s中的放大请求,并获得请求放大点a在列图片中的坐标;
[0078]
d2.以放大点a在列图片中的坐标转换到rgb三维数组中的坐标为圆心,以r为半径,设置rgb值提取范围f;
[0079]
d3.从rgb三维数组中抽取rgb值提取范围f内的rgb三维数据,记为rgb三维数据x1;
[0080]
d4.将rgb三维数据x1按照预定的放大倍数或用户请求的放大倍数放大,获得放大后的rgb三维数据x2,复制rgb值数据x2得到新的rgb三维数组rgbarray_1;
[0081]
d5.将rgb三维数组rgbarray_1中的rgb值按顺序绘制在放大画板g中;
[0082]
d6.渲染放大画板g进行显示。
[0083]
具体的,还包括以下步骤:
[0084]
c1.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收;
[0085]
c2.将列数据字节数组转换为列图片并在屏幕s中按顺序渲染显示。
[0086]
具体的,还包括以下步骤:
[0087]
a1.如图10,创建一个c为缺省的rgb三维数组,空白rgb三维数组中的元素记为:rgbarray=int[a][b][c];其中,a为一个像素点的宽度方向的位点;b为一个像素点的高度方向的位点;c表示为一个像素点的rgb值,一个元素代表一个像素点。以图10为例,其第一行第一列的元素为:[a]=0[b]=0[c]=c(缺省)。以此类推。
[0088]
a2.如图10、图11所示,第一个列数据字节数组所对应的列图片1和第二个列数据字节数组所对应的列图片2都隶属于1个x光包裹图片,对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收时,按每接收一组列数据字节数组刷新一次的规则,顺序刷新c为空白的rgb三维数组;
[0089]
刷新c为缺省的rgb三维数组的过程为:遍历列数据字节数组,计算列数据字节数组中对应列图片的每一个像素点的rgb三维数据,rgb三维数据包括:a'、b'、c',a'为一个像素点的宽度方向的位点;b'为一个像素点的高度方向的位点;c'表示为一个像素点的rgb值,将c'写入rgbarray中,以对[c]刷新;
[0090]
若当列数据字节数组为1个x光包裹图片的首列,则直接将c'按a'=[a]、b'=[b]
的对应关系写入[a][b]对应的c中;
[0091]
若当列数据字节数组为1个x光包裹图片的首列之后的列,则将c'按a'+zw=[a]、b'=[b]的对应关系写入[a][b]对应的c中,zw为之前所有列数据字节数组所对应列图片的总宽度。
[0092]
以图9-图14所示,在第一次刷新rgb三维数组时,直接按相同的位点关系写入rgb值,其中,在第二次刷新rgb三维数组时,由于列图片1的宽度为4,即当列数据字节数组之前所有列数据字节数组所对应列图片的总宽度zw为4,以此,根据上述关系,对于输入的第二个列数据字节数组时,其列图片2的rgb三维数据中,第一行的第一个像素点的a'=0,则a'+zw=4,因此rgb三维数据中[a]=4的位置记为当前像素点需要插入的位置,因此将第一行的第一个像素点c'插入到该[a]=4的点位中,以此类推,完成第二次刷新得到图14。可以看出,该刷新后的rgb三维数据是连续的,同时包含了2个列图片的图像信息。以该rgb三维数据中的任意一点即可实现跨列的取数,并执行放大操作。
[0093]
列图片并在屏幕s中按顺序渲染显示在屏幕s的边缘处。
[0094]
具体的,所述r为系统提前配置参数或用户的放大请求,所述放大倍数为系统提前配置参数或用户的放大请求。
[0095]
具体的,所述坐标包括宽度方向的位点、高度方向的位点。
[0096]
另一方面,用rgb数组对列包裹图片局部放大的装置,
[0097]
屏幕s;
[0098]
存储器;
[0099]
一个或多个处理器;及
[0100]
一个或多个模块,存在存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括:
[0101]
检测用户在屏幕s中的放大请求,并获得请求放大点a在列图片中的坐标的模块;
[0102]
以放大点a在列图片中的坐标为圆心,以r为半径,设置rgb值提取范围f的模块;
[0103]
从rgb三维数组中抽取rgb值提取范围f内的rgb三维数据,记为rgb三维数据x1的模块;
[0104]
将rgb三维数据x1按照预定的放大倍数或用户请求的放大倍数放大,获得放大后的rgb三维数据x2,复制rgb值数据x2得到新的rgb三维数组rgbarray_1的的模块;
[0105]
将rgb三维数组rgbarray_1中的rgb值按顺序绘制在放大画板g中的模块;
[0106]
渲染放大画板g进行显示的的模块。
[0107]
具体的,所述一个或多个模块还包括:
[0108]
对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收的模块;
[0109]
将列数据字节数组转换为列图片并在屏幕s中按顺序渲染显示的模块。
[0110]
具体的,所述一个或多个模块还包括:
[0111]
a1.创建一个c为缺省的rgb三维数组的模块,空白rgb三维数组中的元素记为:rgbarray=int[a][b][c];其中,a为一个像素点的宽度方向的位点;b为一个像素点的高度方向的位点;c表示为一个像素点的rgb值,一个元素代表一个像素点。
[0112]
a2.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收时,按每接收一组列数据字节数组刷新一次的规则,顺序刷新c为空白的rgb三维数组的模块;
[0113]
刷新c为缺省的rgb三维数组的过程为:遍历列数据字节数组,计算列数据字节数组中对应列图片的每一个像素点的rgb三维数据,rgb三维数据包括:a'、b'、c',a'为一个像素点的宽度方向的位点;b'为一个像素点的高度方向的位点;c'表示为一个像素点的rgb值,将c'写入rgbarray中,以对[c]刷新;
[0114]
若当列数据字节数组为1个x光包裹图片的首列,则直接将c'按a'=[a]、b'=[b]的对应关系写入[a][b]对应的c中;
[0115]
若当列数据字节数组为1个x光包裹图片的首列之后的列,则将c'按a'+zw=[a]、b'=[b]的对应关系写入[a][b]对应的c中,zw为之前所有列数据字节数组所对应列图片的总宽度。其中,a,a'都代表的了宽度方向的位点,因此,使得a'+zw=[a]的本质是一种补宽对应关系,即记录已写入的列图片的总宽度,然后补宽计算后查询对应的宽度方向的位点,最终找到该宽度位点后,写入rgb值。
[0116]
另一方面,用rgb数组对列包裹图片局部放大的显示器,显示器至少包括以下画面状态;
[0117]
第一画面状态:一个包裹图片的列图片按顺序在屏幕s上渲染显示;
[0118]
第二画面状态:用户在屏幕s中的列图片上触发放大请求后,屏幕s中出现放大画板g。
[0119]
本发明的设计原理为:在本发明中,可以对于1个包裹图片创建一个rgb三维数组,rgb三维数组为一个临时缓存数据。rgb三维数组一般在一个包裹图片的首个列图片出现时被创建,下一个包裹图片的首个列图片出现后被重新创建,也可以创建一个宽度和高度位点范围与屏幕s相同的rgb三维数组,总之,创建1个宽度和高度位点范围至少大于1个列图片范围的rgb三维数组。该rgb三维数组用于随时记录新的列图片中的rgb值,以备放大时调用。
[0120]
本发明在屏幕s导入列数据时,将列数据(二进制)转为列图片并对列图片进行渲染显示,在该过程中,同步基于当前列数据的rgb值刷新rgb三维数组,用户看不见rgb三维数组,仅可以看到动态的一个一个的列图片按顺序进入到屏幕s中。需要特别强调是,本发明中,由于1个列数据对应1个独立的列图片,其解析为列图片后,每一个列图片第一行、第一个像素点的位点都是从(0,0)重新开始的;因此,当用户选择了某一个列图片上的放大点a后,其对应的放大范围无法延伸到相邻的列图片中,为了实现跨列放大,本发明创建了上述能容纳多个列图片rgb值的rgb三维数组,该rgb三维数组按列数据进入顺序刷新,刷新一次,则导入一组新的rgb值,且是连续的。该刷新过程实际上实现了将不同列的列图片的rgb值记录在一个完整的顺序数组中,该数组中没有出现数组断开的情况。为了实现将不同的列图片的rgb值记录在一个完整的顺序数组中,本发明在第二列的列图片及其之后的列图片时,按照补宽对应关系写入。
[0121]
上述rgb三维数组刷新过程中,随时可以响应放大请求,无需等待列图片组成一个完整的包裹图片。
[0122]
当用户触发了放大请求后,系统捕捉用户在屏幕s上的放大点a,放大点a映射在列图片上,获得该放大点在列图片中的坐标,同时以该坐标寻找到对应在rgb三维数组中的坐标,此时,以该坐标为基准创建一个提取范围f,由于列图片的rgb值连续复刻到rgb三维数组中的。因此,可以直接将提取范围f映射到rgb三维数组中,随后进行提取、放大、写入到放
大画板g、显示。该放大画板g是可以自由移动的,不受放大点a的限制,因为在标定放大点a时,系统已锁定了该坐标位置,后续的抽取、放大、显示并不依赖列图片,而是依赖rgb三维数组,而rgb三维数组可以同时包含已进入的跨多列的图像数据(未进入的列图片不能获得),因此本发明可以实现跨列放大和锁定放大,并不会受列图片的移动而需要增设复杂的运算方法。
[0123]
本发明的有益效果为:
[0124]
1、解决了列数据显示难以放大的问题。
[0125]
2、放大过程中,列数据正常进入、列图片依然按顺序进入、无需列图片停止进入。
[0126]
3、可以实现跨列放大,当任选1个列图片中的点作为放大点a时,可以跨越到相邻列的内容进行放大。
[0127]
4、放大窗口,即放大画板g,不受放大点a的位置约束,可以自由移动。
[0128]
需要特别说明的是:
[0129]
本发明的应用场景1:
[0130]
如图1所示,图1为所有包裹图片都分为多列数据,然后在屏幕s上所有列图片按照顺序成像,前一包裹图片的列图片并未消失,依然在屏幕s上成像。
[0131]
本发明的上述放大的方法,也可以适应图1这种全列图片成像场景。需要创建一个与屏幕s等大的rgb三维数组,按先进先出的原则同时顺序刷新rgb三维数组,即在本场景下,rgb三维数组可以不按包裹划分,rgb三维数组包含多个包裹,也可以将rgb三维数组按包裹划分,1个rgb三维数组对应1个包裹,无论那种模式,其都不影响本发明的局部放大操作。本发明基于rgb三维数组包含多列列图片与的对应关系,可以基于rgb三维数组进行数据的抽取、放大,并创建一个独立的放大画板,以放大画板为放大窗口。
[0132]
本发明的应用场景2:
[0133]
如图2-7所示,本发明还独立于上述场景1,提出了一种当前包裹图片采用列图片逐列成像、之前包裹图片采用画板图片成像的成像方法,由于该方法中会在1个包裹的情况下创建1个对应的画板g,该画板g仅对应1个包裹。因此本发明可以适应与当前包裹下的所有列图片进行放大,并基于该包裹对应的rgb三维数组进行放大运算。
[0134]
具体的,当前包裹图片采用列图片逐列成像、之前包裹图片采用画板图片成像的成像方法,包括以下步骤:
[0135]
s1.按顺序获取一个包裹图片所对应的1个当前列数据字节组;
[0136]
s2.将1个当前列数据字节组转为1个当前列图片;
[0137]
s3.判断当前列图片是否为一个包裹图片的首列图片,若是,则转s4、s5、s6,若否,则转s5、s7;
[0138]
s4.创建隐藏状态的画板g;
[0139]
s5.将当前列图片的像素值画入到画板g;
[0140]
s6.当前列图片之前的所有画板图片整体横移一个列图片宽度后进行渲染显示,当前列图片沿屏幕s的边缘处渲染显示;
[0141]
s7.判断当前列图片是否为一个包裹图片的尾列图片,若是,则转s9,若否,则转s8;
[0142]
s8.当前列图片之前的所有画板图片、所有列图片整体横移一个列图片宽度后进
行渲染显示,当前列图片沿屏幕s的边缘处渲染显示;
[0143]
s9.将画板g转换为当前画板图片g,删除所有列图片,转s10;
[0144]
s10.当前列图片之前的所有画板图片整体横移一个列图片宽度后进行渲染显示,当前画板图片g沿屏幕s的边缘处渲染显示。
[0145]
如图6所示,为1个包裹图片(行包图片或行包图像),一个包裹图片此时并没有违禁品标识框,该包裹图片是由智能识图盒子处理分割得到,仅识别后获得违禁品标识信息(包括违禁品名称、标识框坐标信息),智能识图盒子此时将该包裹图片切割为多个列数据字节组,列数据字节组为二进制,列数据字节组简称为列数据,一般用于方便传输。
[0146]
如图1所示,若将每个包裹图片所对应的多个列数据传输到成像终端,由成像终端逐列的成像显示,由于在一个画面中,除了显示当前包裹图片所对应的列图片外,之前的包裹图片所对应的列图片也要一并位移后被渲染显示。即在客户端收取到包裹的列数据时,通常会直接将其转换成图片直接渲染在客户端的包裹图片展示区,有多少列数据就渲染多少列数据图片。这种做法会产生以下问题:
[0147]
1.当画面中包裹过多时,所展示的图片也就过多,例如:假设有10个包裹,每个包裹20列,分别都有俯视角和侧视角,则总共所渲染的图片就会有10x20x2=400,所以客户端每步进显示一次就要渲染400张图片,当再有列数据接收时,要同时移动400张图片,对客户端的性能开销是非常大的。
[0148]
2.当接收到智能识图的违禁品标识框坐标时,由于违禁品标识框坐标是需要根据图片的像素点进行位置计算的,若要按照列数据计算,其过程非常复杂,而且每次包裹的移动都要重新计算违禁品框和列数据图片的相对位置。
[0149]
针对以上问题,本发明就提出画布同步的概念,将接收到的列图片,取其每个像素点的rgb值,并且将rgb值(像素值)按照相同位置画在画板上,对于1个包裹,当接收到完整包裹后,将不再展示列图片,而将画板的数据转换成画板图片在客户端上渲染成像。这样就节省了大量图片渲染的性能。
[0150]
如图3、图4,还是上面的例子,在本发明中,前9个包裹都形成了各自对应的画板图片g1、画板图片g2
…
,对于当前包裹而言,若其中当前列图片为首列图片,则对当前列图片和前面的9个画板图片渲染成像,即(9+1)*2=20张图片,若当前列图片不是首列图片、也不是尾列图片,即中间列图片,则对之前的列图片、当前列图片和前面的9个画板图片渲染成像,即(9+1+(1或2或
…
18))*2,若当前列图片为尾列图片,则对所有列图片删除、前面的9个画板图片和当前画板图片渲染成像,即(9+1)*2=20张图片,就只有20张图片展示再客户端上且移动。并且绘制框的时候,根据画板的宽高计算违禁品标识的坐标,直接在画板上绘制。
[0151]
判定首列图片和尾列图片方式为常规技术,在此不再赘述。
[0152]
如图3所示,屏幕s中的画面是从右向左移动的,在当前包裹所对应的列数据进入后,形成了列图片1,经过判定其为首列图片,此时渲染前面的包裹对应的画板图片、同时使得列图片1在屏幕s的最右侧被渲染显示、同时将列图片1的像素值画到隐藏状态的画板g中,该画板g在没有列图片被判定为尾列图片前,作为当前包裹所对应的1个画板容器,该画板同样初始化在屏幕的右侧,同时也同步横移。
[0153]
如图4所示,在当前包裹所对应的列数据进入后,形成了列图片3,列图片3由于被
判定为不是首列图片,其像素值被写入到画板g中,同时,被判定为尾列后,当前包裹对应的列图片1、2、3均被删除,此时,画板g被转换为画板图片g与之前的画板图片一同被渲染。在本发明中,画板有三个状态,被创建出来填充了首列图片像素、但被隐藏状态,填充了多个列图片像素、但被隐藏状态,填充了当前包裹的全部列图片的像素组成一个新的图片后被渲染显示的状态。
[0154]
进一步的,将画板g转换为当前画板图片g时,读取当前列图片及所有列图片的宽度求和得到一个裁边宽度,根据裁边宽度获得新的画板g,将新的画板g转换为当前画板图片g。该过程进一步的限定了最终的画板图片g的边界,一个画板图片g的宽度与1个包裹图片的宽度相同,但其是基于一个包裹所对应的所有列图片的宽度求和而确定。实现了对一个包裹的所有列在显示终端侧的合并再成像,但保留了成像的动态特性。
[0155]
进一步的,根据权利要求1所述的用rgb数组对列包裹图片局部放大的方法,其特征在于,当前画板图片包含了首列图片、首列图片与尾列图片之间的列图片、尾列图片的像素值;当前列图片之前的每个画板图片与一个包裹图片对应,所述一个包裹图片为一个具有完整轮廓的包裹x光图片。
[0156]
进一步的,所述将画板g转换为画板图片之前,还包括以下步骤:
[0157]
s01.获得获取一个包裹图片所对应的违禁品标识框坐标信息;
[0158]
s02.根据违禁品标识框坐标信息,在画板g中绘制出相应的违禁品标识框,在画板g中绘制出相应的违禁品标识框一般是根据坐标与像素坐标的对应关系,找到角点,一般有左上、右下2个角点,基于这2个角点形成框线,框线所经过的像素点变换为线框像素,该过程可以理解为将线框像素叠加或植入到画板中。
[0159]
进一步的,所述当前列图片为高度固定取h、保持宽高比的图片;所述画板g为高度固定取h、宽度取屏幕s宽度的画板;所述h与所述屏幕s的高度相同。由于一个包裹图片可能来自不同的x光机,为了统一画面大小,特以高度固定取h、保持宽高比形成当前列图片,比例关系保留后,用于后续计算。
[0160]
进一步的,所述屏幕s的边缘处是指整体横移运动方向所背离的一侧,例如若,整体横移运动方向向左,则屏幕s的边缘处是指最右侧,若,整体横移运动方向向右,则屏幕s的边缘处是指最左侧。
[0161]
进一步的,一个包裹图片所对应的1个当前列数据字节组和一个包裹图片所对应的违禁品标识框坐标信息均来自于智能识图盒子。
[0162]
如图1-7所示,当前包裹图片采用列图片逐列成像、之前包裹图片采用画板图片成像的的装置,包括:
[0163]
屏幕s;
[0164]
存储器;
[0165]
一个或多个处理器;及
[0166]
一个或多个模块,存在存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括:
[0167]
按顺序获取一个包裹图片所对应的1个当前列数据字节组的模块;
[0168]
将1个当前列数据字节组转为1个当前列图片的模块;
[0169]
判断当前列图片是否为一个包裹图片的首列图片的模块;
[0170]
在当前列图片是首列图片时,创建隐藏状态的画板g的模块;
[0171]
在当前列图片为首列图片时,将当前列图片的像素值画入到画板g的模块;
[0172]
在当前列图片为首列图片时,当前列图片之前的所有画板图片整体横移一个列图片宽度后进行渲染显示,当前列图片沿屏幕s的边缘处渲染显示的模块;
[0173]
在当前列图片不是首列图片时,将当前列图片的像素值画入到画板g的模块;
[0174]
判断当前列图片是否为一个包裹图片的尾列图片的模块;
[0175]
当前列图片不是首列图片、不是尾列图片时,当前列图片之前的所有画板图片、所有列图片整体横移一个列图片宽度后进行渲染显示,当前列图片沿屏幕s的边缘处渲染显示的模块;
[0176]
当前列图片是尾列图片时,将画板g转换为当前画板图片g,删除所有列图片的模块,
[0177]
当前列图片是尾列图片时,当前列图片之前的所有画板图片整体横移一个列图片宽度后进行渲染显示,当前画板图片g沿屏幕s的边缘处渲染显示的模块。
[0178]
优选的,所述一个或多个模块还包括:
[0179]
获得获取一个包裹图片所对应的违禁品标识框坐标信息的模块;
[0180]
当前列图片是尾列图片时,根据违禁品标识框坐标信息,在画板g中绘制出相应的违禁品标识框的模块。
[0181]
如图1-7所示,当前包裹图片采用列图片逐列成像、之前包裹图片采用画板图片成像的显示器,显示器至少包括以下画面状态;
[0182]
第一画面状态:当前列图片之前的所有画板图片整体横移一个列图片宽度后进行渲染显示,当前列图片沿屏幕s的边缘处渲染显示;
[0183]
第二画面状态:当前列图片之前的所有画板图片、所有列图片整体横移一个列图片宽度后进行渲染显示,当前列图片沿屏幕s的边缘处渲染显示;
[0184]
第三画面状态:当前列图片之前的所有画板图片整体横移一个列图片宽度后进行渲染显示,当前画板图片沿屏幕s的边缘处渲染显示;
[0185]
当前列图片之前的每个画板图片与一个包裹图片对应,所述一个包裹图片为一个具有完整轮廓的包裹x光图片;当前画板图片包含了首列图片、首列图片与尾列图片之间的列图片、尾列图片的像素值。
[0186]
本发明的上述放大方法与上述成像方法并行执行。
[0187]
可以理解的是,以上实施方式仅仅是为了说明本发明/发明的原理而采用的示例性实施方式,然而本发明/发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明/发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明/发明的保护范围。
技术特征:1.用rgb数组对列包裹图片局部放大的方法,其特征在于,包括以下步骤:d1.检测用户在屏幕s中的放大请求,并获得请求放大点a在列图片中的坐标;d2.以放大点a在列图片中的坐标转换到rgb三维数组中的坐标为圆心,以r为半径,设置rgb值提取范围f;d3.从rgb三维数组中抽取rgb值提取范围f内的rgb三维数据,记为rgb三维数据x1;d4.将rgb三维数据x1按照预定的放大倍数或用户请求的放大倍数放大,获得放大后的rgb三维数据x2,复制rgb值数据x2得到新的rgb三维数组rgbarray_1;d5.将rgb三维数组rgbarray_1中的rgb值按顺序绘制在放大画板g中;d6.渲染放大画板g进行显示。2.根据权利要求1所述的用rgb数组对列包裹图片局部放大的方法,其特征在于,还包括以下步骤:c1.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收;c2.将列数据字节数组转换为列图片并在屏幕s中按顺序渲染显示。3.根据权利要求1所述的用rgb数组对列包裹图片局部放大的方法,其特征在于,还包括以下步骤:a1.创建一个c为缺省的rgb三维数组,空白rgb三维数组中的元素记为:rgbarray=int[a][b][c];其中,a为一个像素点的宽度方向的位点;b为一个像素点的高度方向的位点;c表示为一个像素点的rgb值,一个元素代表一个像素点。a2.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收时,按每接收一组列数据字节数组刷新一次的规则,顺序刷新c为空白的rgb三维数组;刷新c为缺省的rgb三维数组的过程为:遍历列数据字节数组,计算列数据字节数组中对应列图片的每一个像素点的rgb三维数据,rgb三维数据包括:a'、b'、c',a'为一个像素点的宽度方向的位点;b'为一个像素点的高度方向的位点;c'表示为一个像素点的rgb值,将c'写入rgbarray中,以对[c]刷新;若当列数据字节数组为1个x光包裹图片的首列,则直接将c'按a'=[a]、b'=[b]的对应关系写入[a][b]对应的c中;若当列数据字节数组为1个x光包裹图片的首列之后的列,则将c'按a'+zw=[a]、b'=[b]的对应关系写入[a][b]对应的c中,zw为之前所有列数据字节数组所对应列图片的总宽度。4.根据权利要求2所述的用rgb数组对列包裹图片局部放大的方法,其特征在于,列图片并在屏幕s中按顺序渲染显示在屏幕s的边缘处。5.根据权利要求1所述的用rgb数组对列包裹图片局部放大的方法,其特征在于,所述r为系统提前配置参数或用户的放大请求,所述放大倍数为系统提前配置参数或用户的放大请求。6.根据权利要求1所述的用rgb数组对列包裹图片局部放大的方法,其特征在于,所述坐标包括宽度方向的位点、高度方向的位点。7.用rgb数组对列包裹图片局部放大的装置,其特征在于:屏幕s;存储器;
一个或多个处理器;及一个或多个模块,存在存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括:检测用户在屏幕s中的放大请求,并获得请求放大点a在列图片中的坐标的模块;以放大点a在列图片中的坐标为圆心,以r为半径,设置rgb值提取范围f的模块;从rgb三维数组中抽取rgb值提取范围f内的rgb三维数据,记为rgb三维数据x1的模块;将rgb三维数据x1按照预定的放大倍数或用户请求的放大倍数放大,获得放大后的rgb三维数据x2,复制rgb值数据x2得到新的rgb三维数组rgbarray_1的的模块;将rgb三维数组rgbarray_1中的rgb值按顺序绘制在放大画板g中的模块;渲染放大画板g进行显示的的模块。8.根据权利要求7所述的用rgb数组对列包裹图片局部放大的装置,其特征在于:所述一个或多个模块还包括:对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收的模块;将列数据字节数组转换为列图片并在屏幕s中按顺序渲染显示的模块。9.根据权利要求7所述的用rgb数组对列包裹图片局部放大的装置,其特征在于:所述一个或多个模块还包括:a1.创建一个c为缺省的rgb三维数组的模块,空白rgb三维数组中的元素记为:rgbarray=int[a][b][c];其中,a为一个像素点的宽度方向的位点;b为一个像素点的高度方向的位点;c表示为一个像素点的rgb值,一个元素代表一个像素点。a2.对1个x光包裹图片的列图片所对应的列数据字节数组按顺序接收时,按每接收一组列数据字节数组刷新一次的规则,顺序刷新c为空白的rgb三维数组的模块;刷新c为缺省的rgb三维数组的过程为:遍历列数据字节数组,计算列数据字节数组中对应列图片的每一个像素点的rgb三维数据,rgb三维数据包括:a'、b'、c',a'为一个像素点的宽度方向的位点;b'为一个像素点的高度方向的位点;c'表示为一个像素点的rgb值,将c'写入rgbarray中,以对[c]刷新;若当列数据字节数组为1个x光包裹图片的首列,则直接将c'按a'=[a]、b'=[b]的对应关系写入[a][b]对应的c中;若当列数据字节数组为1个x光包裹图片的首列之后的列,则将c'按a'+zw=[a]、b'=[b]的对应关系写入[a][b]对应的c中,zw为之前所有列数据字节数组所对应列图片的总宽度。10.用rgb数组对列包裹图片局部放大的显示器,其特征在于:显示器至少包括以下画面状态;第一画面状态:一个包裹图片的列图片按顺序在屏幕s上渲染显示;第二画面状态:用户在屏幕s中的列图片上触发放大请求后,屏幕s中出现放大画板g。
技术总结本发明公开了用RGB数组对列包裹图片局部放大的方法装置、显示器,检测用户在屏幕S中的放大请求,以放大点A在列图片中的坐标转换到RGB三维数组中的坐标为圆心,以R为半径,设置RGB值提取范围F;从RGB三维数组中抽取RGB值提取范围F内的RGB三维数据,将RGB三维数据X1按照预定的放大倍数或用户请求的放大倍数放大,将RGB三维数组rgbArray_1中的RGB值按顺序绘制在放大画板g中;渲染放大画板g进行显示。本发明解决了列数据显示难以放大的问题。可以实现跨列放大,当任选1个列图片中的点作为放大点A时,可以跨越到相邻列的内容进行放大。可以跨越到相邻列的内容进行放大。可以跨越到相邻列的内容进行放大。
技术研发人员:姜旭 连天友 唐宗祥 邓军 严军 张利
受保护的技术使用者:成都智元汇信息技术股份有限公司
技术研发日:2022.08.23
技术公布日:2022/12/1