一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种粮仓散粮堆三维模型生成方法及其相关产品与流程

2022-11-23 15:05:40 来源:中国专利 TAG:


1.本发明的实施方式涉及粮库信息化与可视化监管技术领域,更具体地,本发明的实施方式涉及一种粮仓散粮堆三维模型生成方法,粮仓散粮堆三维模型生成装置和计算机可读存储介质。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本技术的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
3.随着国家粮食行业信息化监管技术的不断发展与升级,可视化管理的需求越来越迫切,用户不仅需要查看监测数据记录,还需要以图形的形式直观查看库区、仓房及粮堆状态。因此,如何实现数据可视化,是今后粮食行业信息化监管技术升级的一个重要趋势。
4.确保国家储备粮“数量真实,质量良好”是国家对储备粮管理的基本要求。为了实现“数量真实”,国家部分粮库建设了粮食数量在线监测系统,该系统可以采集粮堆表面测点数据,用于计算粮堆体积及重量。此外,这些测点数据还可用于生成粮堆三维模型,直观反映粮堆形态,替代仓内摄像头,节约建设成本。
5.现有技术中存在生成粮堆三维模型的技术方案,例如:
6.采用javascript脚本语言编程生成粮堆三维模型,比如国内的echarts和国外的canvas图表软件均采用javascript进行编程绘制图形。但是,javascript属于前端开发技术,后端工程师应用javascript开发粮堆三维模型需要额外的学习成本,存在一定的技术障碍。
7.另外,传统的粮堆三维模型比较简单,总体展示效果较差,无法清晰直观地区分粮仓不同区域粮堆高度的大小,且传统粮堆三维模型主要针对满仓状态的平整粮面,一般无法应用于复杂不规则散粮堆。


技术实现要素:

8.现有技术中,粮堆三维模型及其生成方法存在以上诸多弊端。为此,非常需要一种粮仓散粮堆三维模型生成方法,用于至少解决上述诸多弊端之一。同时,本发明还提供了一种粮仓散粮堆三维模型生成装置和计算机可读存储介质。
9.在本上下文中,本发明的实施方式期望提供一种粮仓散粮堆三维模型生成方法及其相关产品。
10.在本发明实施方式的第一方面中,提供了一种粮仓散粮堆三维模型生成方法,包括:获取粮仓内粮堆顶面的空间直角坐标数据;采用java和图形软件相互配合的方式,对所述粮堆顶面的空间直角坐标数据进行处理,生成粮堆三维模型;所述图形软件为matlab或echarts数据可视化图表库。
11.在一个实施例中,当所述图形软件为matlab时,通过以下步骤生成粮堆三维模型:将编写好的matlab程序打成jar包,并将matlab程序的jar包和支持java调用的jar包一并导入创建好的java项目中;所述matlab程序用于读取所述粮堆顶面的空间直角坐标数据,并输出粮堆三维曲面图;运行java项目,通过调用所述matlab程序对所述粮堆顶面的空间直角坐标数据进行处理,生成粮堆三维曲面图作为所述粮堆三维模型。
12.在另一个实施例中,所述图形软件为echarts数据可视化图表库时,通过以下步骤生成粮堆三维模型:创建java项目,使用java语言对所述粮堆顶面的空间直角坐标数据进行矩阵化处理,得到粮堆顶面矩阵化数据;运行java项目,通过调用所述echarts数据可视化图表库对所述粮堆顶面矩阵化数据进行处理,生成粮堆三维云图作为所述粮堆三维模型。
13.在又一个实施例中,所述粮堆三维云图使用不同的颜色区分粮堆高度。
14.在再一个实施例中,所述获取粮仓内粮堆顶面的空间直角坐标数据包括:使用java语言读取整仓点云数据,并对所述整仓点云数据进行坐标转换,将整仓点云数据转换为整仓空间直角坐标数据,然后结合粮仓边界对所述整仓空间直角坐标数据进行过滤处理,去除仓壁、仓顶上的数据,仅保留粮堆顶面的空间直角坐标数据。
15.在还一个实施例中,所述去除仓壁、仓顶上的数据包括:结合仓顶的最小高度去除仓顶上的数据;若所述粮仓为粮食筒仓,则结合筒仓的内半径去除仓壁上的数据;若所述粮仓为粮食平方仓,则结合平方仓内壁的宽度和长度去除仓壁上的数据。
16.在还一个实施例中,所述粮仓为粮食筒仓时,结合筒仓的内半径去除仓壁上的数据包括:针对任一粮堆顶面的空间直角坐标数据(xi,yi,zi),若该数据满足公式xi*xi yi*yi<r*r,则保留该数据,反之则去除该数据;式中,r表示筒仓的内半径。
17.在还一个实施例中,所述粮仓为粮食平方仓时,结合平方仓内壁的宽度和长度去除仓壁上的数据包括:针对任一粮堆顶面的空间直角坐标数据(xi,yi,zi),若该数据满足公式x
min
<xi<x
max
和y
min
<yi<y
max
,则保留该数据,反之则去除该数据;式中,x
min
、x
max
表示平方仓仓壁处横坐标的最小值和最大值,y
min
、y
max
表示平方仓仓壁处纵坐标的最小值和最大值;x
min
、x
max
、y
min
、y
max
的取值根据平方仓内壁的宽度和长度确定。
18.在本发明实施方式的第二方面中,提供了一种粮仓散粮堆三维模型生成装置,包括:处理器,其配置用于执行程序指令;以及存储器,其配置用于存储所述程序指令,当所述程序指令由所述处理器加载并执行时,使得所述处理器执行根据在本发明实施方式的第一方面中任一项所述的粮仓散粮堆三维模型生成方法。
19.在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行根据在本发明实施方式的第一方面中任一项所述的粮仓散粮堆三维模型生成方法。
20.本发明的有益效果包括:本发明方法采用java和图形软件相互配合的方式生成粮堆三维模型,一方面,由于java一直是后端工程师应用最广泛的编程语言,因此,与采用javascript语言的传统粮堆三维建模方式相比,本发明方法对后端工程师更友好,能为后端工程师开发散粮堆三维模型提供便利,使开发更为简捷,高效;另一方面,本发明采用混合编程的方式生成粮堆三维模型,能够结合两种工具的优点,实现优势互补,例如可以综合java和matlab两者的优点,充分利用matlab自身强大的数据处理和图形绘制能力,实现散
粮堆的快速三维建模,降低开发难度,提高开发效率;还可以综合java和echarts数据可视化图表库(简称echarts图表库)两者的优点,充分利用echarts图表库的彩色云图功能,更加清晰直观地区分粮仓不同区域的粮堆高度。综上所述,本发明方法对后端工程师更友好,能够降低粮堆三维模型的开发难度,提高开发效率,满足粮库用户对粮堆三维可视化的业务需求,生成的三维模型能够直观地反映粮堆的形态,替代仓内视频画面,节约建设资金。
附图说明
21.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
22.图1示意性地示出了适于实现本发明实施方式的粮食筒仓现场实物图;
23.图2示意性地示出了根据本发明一个实施例的一种粮仓散粮堆三维模型生成方法200的流程图;
24.图3示意性地示出了根据本发明实施例的第一粮食平房仓的现场实物图;
25.图4示意性地示出了根据本发明实施例的第一粮食平房仓的整仓三维散点图;
26.图5示意性地示出了根据本发明实施例的第一粮食平房仓的粮堆三维曲面图;
27.图6示意性地示出了根据本发明实施例的第一粮食筒仓的整仓三维散点图;
28.图7示意性地示出了根据本发明实施例的第一粮食筒仓的粮堆三维曲面图;
29.图8示意性地示出了根据本发明另一个实施例的一种粮仓散粮堆三维模型生成方法800的流程图;
30.图9示意性地示出了根据本发明实施例的第二粮食平房仓的现场实物图;
31.图10示意性地示出了根据本发明实施例的第二粮食平房仓的整仓三维散点图;
32.图11示意性地示出了根据本发明实施例的第二粮食平房仓的粮堆顶面矩阵化数据示意图;
33.图12示意性地示出了根据本发明实施例的第二粮食平房仓的粮堆三维云图;
34.图13示意性地示出了根据本发明实施例的第二粮食筒仓的整仓三维散点图;
35.图14示意性地示出了根据本发明实施例的第二粮食筒仓的粮堆顶面矩阵化数据示意图;
36.图15示意性地示出了根据本发明实施例的第二粮食筒仓的粮堆三维云图;
37.图16示意性地示出了适于实现本发明实施方式的示例性粮仓散粮堆三维模型生成装置1000的框图;
38.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
39.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
40.根据本发明的实施方式,提出了一种粮仓散粮堆三维模型生成方法及其相关产
品。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
41.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
42.本发明的粮仓散粮堆三维模型生成方法,采用java和图形软件相互配合的方式,对粮堆顶面的空间直角坐标数据进行处理,生成粮堆三维模型。一方面是考虑到java语言一直是后端工程师应用最广泛的编程语言,采用java语言建立粮堆三维模型,与采用javascript语言的传统粮堆三维建模方式相比,对后端工程师更友好,能为后端工程师开发散粮堆三维模型提供便利,使开发更为简捷,高效;另一方面,本发明采用java和图形软件两种工具相配合的方式(即混合编程的方式)生成粮堆三维模型,能够结合java和matlab两者的优点,或者结合java和echarts数据可视化图表库两者的优点,实现优势互补,进一步地降低粮堆三维模型的开发难度,提高开发效率,使开发出的粮堆三维模型,能够满足粮库用户对粮堆三维可视化的业务需求,生成的三维模型能够直观地反映粮堆的形态,替代仓内视频画面,节约建设资金。
43.在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
44.下面参考图1来描述根据本发明示例性实施方式的一种粮仓散粮堆三维模型生成方法。需要注意的是,本发明的实施方式可以应用于适用的任何场景。例如,不仅适用于图1所示的粮食筒仓,也适用于粮食平房仓;另外,本发明方法不仅适用于粮仓散粮堆,也适用于其他散体物料堆,如沙子、土、石、煤等。
45.图2示意性地示出了根据本发明一个实施例的一种粮仓散粮堆三维模型生成方法200的流程图,其中包括步骤s201、步骤s202和步骤s203。本实施例中,以java和matlab两种工具相互配合,生成粮食平方仓和粮食筒仓的粮堆三维模型为例进行说明。
46.在步骤s201中,获取粮仓内粮堆顶面的空间直角坐标数据。
47.作为举例,可以使用java语言读取整仓点云数据,并对整仓点云数据进行坐标转换,将整仓点云数据转换为整仓空间直角坐标数据,然后结合粮仓边界对整仓空间直角坐标数据进行过滤处理,去除仓壁、仓顶上的数据,仅保留粮堆顶面的空间直角坐标数据。
48.具体地,可以从粮仓现场已经安装的粮食数量在线监测设备的数据库中获取某个时间段的整个粮仓的点云数据(即整仓点云数据),也可以专门布置一些激光雷达测量装置来获取整仓点云数据。获取整仓点云数据后,可将整仓点云数据文件(txt文本格式)放在计算机磁盘中,该整仓点云数据文件为整个粮仓的测点数据文件,每个测点用球坐标(α,β,l)表示,其中,α、β分别是激光雷达的水平转动角度和垂直转动角度,l是激光雷达测距值,由α、β这两个角度确定激光线的位置,再由测距值l确定激光点的位置。
49.接着,创建java项目,使用java语言读取整仓点云数据文件,并利用设置好的坐标转换计算参数进行坐标转换,将整仓点云数据中每个测点的球坐标转换为空间直角坐标,得到整仓空间直角坐标数据(包括仓房和粮堆);
50.其中,可以使用集成开发工具(如eclipse)创建普通的java项目,创建测试类,设置好坐标转换计算参数,主要包括仓房尺寸、整仓点云数据采集设备的空间位置等,使用java的io流技术读取整仓点云数据文件。
51.坐标转换通过以下步骤实现:首先,以粮仓地面(即粮堆底面)的高度值为0mm,以
粮仓地面某位置为原点建立空间直角坐标系。例如,对于粮食筒仓,以筒仓圆形地面的圆心为原点建立空间直角坐标系;对于粮食平方仓,以平方仓长方形地面的某个顶点为原点建立空间直角坐标系;然后,利用坐标转换计算公式(即下述的公式一、二、三),将原始的整仓点云数据的球坐标转换为空间直角坐标(x,y,z),转换后得到整仓的空间直角坐标数据,将该文件保存在磁盘中。
52.x=x
0-lsinβsinα
ꢀꢀ
(公式一)
53.y=y0 lsinβcosα
ꢀꢀ
(公式二)
54.z=z
0-lcosβ
ꢀꢀꢀꢀꢀ
(公式三)
55.上式中,(x0,y0,z0)表示整仓点云数据采集设备的空间位置坐标,(α,β,l)为测点的球坐标,(x,y,z)为测点的空间直角坐标。
56.最后,使用java语言结合粮仓边界对整仓空间直角坐标数据进行过滤处理,去除仓房测点,仅保留粮堆顶面的空间直角坐标数据。具体通过以下步骤实现:对任一测点i,根据测点i的平面坐标(xi,yi)判断该测点是否在仓壁以内,如果在则保留,反之则去除;根据测点i的高度坐标zi判断其是否在仓顶以下,如果在则保留,反之则去除;经上述步骤过滤后的测点数据就是粮堆顶面的空间直角坐标数据,可以将过滤后的数据文件保存在本地磁盘中。
57.其中,对于粮食筒仓,需要结合筒仓的内半径(不含仓壁厚度)去除仓壁上的数据,具体地,测点i是否在筒仓仓壁以内的判定条件如下:
58.xi*xi yi*yi<r*r
ꢀꢀꢀ
(判定条件一)
59.式中,r表示筒仓的内半径,若测点i的平面坐标(xi,yi)满足判定条件一,则说明该测点在仓壁以内,反之则不在。
60.对于粮食平方仓,需要结合平方仓内壁的长度和宽度去除仓壁上的数据,具体地,测点i是否在平房仓仓壁以内的判定条件如下:
61.x
min
<xi<x
max
,且y
min
<yi<y
max
ꢀꢀꢀꢀ
(判定条件二)
62.其中,x
min
、x
max
表示平方仓仓壁处横坐标的最小值和最大值,y
min
、y
max
表示平方仓仓壁处纵坐标的最小值和最大值,x
min
、x
max
、y
min
、y
max
的具体取值根据平方仓建立的空间直角坐标系原点和平方仓内壁的宽度和长度确定。
63.对于粮食筒仓和平方仓,均结合仓顶的最小高度去除仓顶上的数据,具体地,测点i是否在仓顶以下的判定条件如下:
64.zi<z
min
ꢀꢀ
(判定条件三)
65.式中,z
min
表示仓顶的最小高度,若测点i的高度坐标zi满足判定条件三,则说明该测点在仓顶以下,反之则不在。
66.在步骤s202中,将编写好的matlab程序打成jar包,并将matlab程序的jar包和支持java调用的jar包一并导入创建好的java项目中。
67.其中,matlab程序用于读取粮堆顶面的空间直角坐标数据,并输出粮堆三维曲面图。
68.具体地,利用matlab软件工具,新建m文件,然后编写matlab程序,程序的主要功能包括读取磁盘中的粮堆顶面的空间直角坐标数据文件绘制粮堆三维曲面图。matlab程序编写完成后,在命令函输入deploytool命令执行打包发布,选择创建的m文件,将其打成jar
包。
69.将matlab程序的jar包和matlab提供的支持java调用的jar包(即javabuilder.jar包)从matlab目录中复制出来,一并导入到创建好的java项目中。
70.本实施例中,在编写matlab程序时,还增加了一个附加功能,该附加功能用于读取磁盘中的整仓空间直角坐标数据文件绘制整仓三维散点图。作为其他实施方式,绘制整仓三维散点图的附加功能可以根据实际需要决定是否添加。
71.需要说明的是,本实施例在步骤s201中利用java语言对原始整仓点云数据进行处理来获得粮堆顶面的空间直角坐标数据,因此在步骤s201中已经创建好了java项目,所以步骤s202中直接将所需的jar包导入步骤s201中已经创建好的java项目中即可,无需再另建一个java项目;作为其他实施方式,若步骤s201中未创建java项目,而是通过其他方获得粮堆顶面的空间直角坐标数据,那么在步骤s202中就需要创建一个java项目。也就是说,步骤s202中所说的“创建好的java项目”可以是在步骤s201中创建的,也可以是在步骤s202中创建的。
72.在步骤s203中,运行java项目,通过调用matlab程序对粮堆顶面的空间直角坐标数据进行处理,生成粮堆三维曲面图作为粮堆三维模型。
73.为了调用matlab程序,需要事先在java项目中创建测试类,编写java调用matlab程序的相应代码,这样运行项目,系统就能运行matlab程序,自动弹出matlab三维模型窗口,显示生成的粮堆三维曲面图和整仓三维散点图,用户可对粮堆三维曲面图和整仓三维散点图进行查看及控制操作。
74.其中,当用户对图形界面有特殊要求时,matlab还支持对图形界面样式进行自定义设置。
75.根据本发明的上述实施例,具有以下优点:
76.(1)采用java和matlab两种编程语言进行混合编程,充分发挥两种编程语言各自的优势,一方面便于编程实现及软件开发,另一方面便于用户对模型进行查看及操作。具体地,利用java语言被后端工程师广泛采用的事实,使本发明方法对后端工程师更友好,开发更为简捷,高效;使用java为matlab提供符合要求的数据,并通过java调用matlab生成粮堆三维模型,能够充分利用matlab自身强大的数据处理和图形绘制能力,达到简易、快捷开发的目的。并且,matlab对数据的格式要求较低,无需对数据进行规则化排列,能够进一步降低开发难度;另外,matlab自带图形用户界面,方便用户进行模型查看,如旋转,缩放,查看任意位置粮堆测点的位置信息等,并且matlab自带的图形用户界面如无特殊要求可直接使用,无需开发。
77.(2)适用于粮食平房仓和筒仓,能够满足粮库用户对粮堆三维可视化的业务需求,能够实现散粮堆的快速三维建模,降低开发难度,提高开发效率,且为后端工程师开发创建散粮堆三维模型提供了便利条件。
78.(3)能够充分挖掘已有粮食数量监测设备采集的点云数据的潜在价值,生成的三维模型能够直观地反映粮堆的形态,替代仓内摄像头,节约建设资金。
79.下面以某库区的一栋粮食平房仓为对象,验证本发明方法的有效性。该粮食平房仓尺寸为51.2mx28.8m,装粮线高度为6m,粮面人工粗平,粮仓内粮堆高度约4.6m,装粮线以上为仓顶,如图3所示。仓房坐北朝南,以仓房西南墙角处为坐标原点建立空间直角坐标系,
现场安装的粮食数量在线监测设备的位置坐标为(23160,10170,5878)。
80.生成该粮食平房仓内粮堆三维模型的过程如下:
81.s1、将粮食数量在线监测设备采集的整仓点云数据放在计算机磁盘中,选择该粮仓某日采集的整仓点云数据文件。
82.s2、创建java项目,设置坐标转换计算参数,读取整仓点云数据文件。
83.s3、依据公式一、二、三,使用java语言进行坐标转换,得到整仓空间直角坐标数据(包括仓房和粮堆)。
84.s4、依据判定条件二、三,使用java语言对整仓空间直角坐标数据进行过滤处理,去除仓房测点,仅保留粮堆顶面的空间直角坐标数据。
85.s5、将编写好的matlab程序打成jar包,并将matlab程序的jar包和支持java调用的jar包一并导入创建好的java项目中。
86.s6、运行java项目,通过调用matlab程序对粮堆顶面的空间直角坐标数据进行处理,生成整仓三维散点图和粮堆三维曲面图,分布如图4、图5所示。用户可以查看这些模型的俯视图、侧视图,可对模型进行旋转、缩放等操作,操作十分简便,另外还可点击查看测点的坐标,以此判断不同位置的粮堆高度。
87.下面以某库区的一栋粮食筒仓为对象,验证本发明方法的有效性。该粮食筒仓直径为25m,粮仓处于出粮状态,粮面不规则,粮堆呈v字形,最大高度约8m,装粮线高度为28m,装粮线以上为仓顶。以仓房地面中心为坐标系原点建立空间直角坐标系,现场安装的粮食数量在线监测设备的位置坐标为(4918,-2144,31625)。
88.生成该粮食筒仓内粮堆三维模型的过程如下:
89.s1、将粮食数量在线监测设备采集的整仓点云数据放在计算机磁盘中,选择该粮仓某日采集的整仓点云数据文件。
90.s2、创建java项目,设置坐标转换计算参数,读取整仓点云数据文件。
91.s3、依据公式一、二、三,使用java语言进行坐标转换,得到整仓空间直角坐标数据(包括仓房和粮堆)。
92.s4、依据判定条件一、三,使用java语言对整仓空间直角坐标数据进行过滤处理,去除仓房测点,仅保留粮堆顶面的空间直角坐标数据。
93.s5、将编写好的matlab程序打成jar包,并将matlab程序的jar包和支持java调用的jar包一并导入创建好的java项目中。
94.s6、运行java项目,通过调用matlab程序对粮堆顶面的空间直角坐标数据进行处理,生成整仓三维散点图和粮堆三维曲面图,分布如图6、图7所示。用户可以查看这些模型俯视图、侧视图,可对模型进行旋转、缩放等操作,操作十分简便,另外还可点击查看测点的坐标,以此判断不同位置粮堆的高度。
95.图8示意性地示出了根据本发明另一个实施例的一种粮仓散粮堆三维模型生成方法800的流程图,其中包括步骤s801、步骤s802和步骤s803。本实施例中,以java和echarts数据可视化图表库(简称echarts图表库)两种工具相互配合,生成粮食平方仓和粮食筒仓的粮堆三维模型为例进行说明。
96.在步骤s801中,获取粮仓内粮堆顶面的空间直角坐标数据。
97.其中,步骤s801的实现方式与上述步骤s201相同,此处不再赘述。
98.在步骤s802中,创建java项目,使用java语言对粮堆顶面的空间直角坐标数据进行矩阵化处理,得到粮堆顶面矩阵化数据;
99.其中,对粮堆顶面的空间直角坐标数据进行矩阵化处理是为了满足echarts图表库对数据的要求,进行矩阵化处理后,会生成行列分布的数据点阵,要求每行的点数和间距相同,每列的点数和间距也相同。
100.在步骤s803中,运行java项目,通过调用echarts图表库对粮堆顶面矩阵化数据进行处理,生成粮堆三维云图作为粮堆三维模型。
101.本实施例中,除了利用echarts图表库对粮堆顶面矩阵化数据进行处理生成粮堆三维云图之外,还利用echarts图表库可根据4个点生成一个平面的功能,根据粮堆顶面矩阵化数据的边界点生成了粮堆侧面以及仓壁。其中,粮堆侧面由多个矩形平面拼接而成。
102.本实施例中,生成的粮堆三维云图能够利用不同的颜色区分粮堆高度,由于粮堆高度是连续变化的,因此不同区域的颜色也是渐变的。
103.需要说明的是,在实际应用中,“创建java项目”可以在步骤s801中创建,也可以在步骤s802中创建。
104.根据本发明的上述实施例,具有以下优点:
105.(1)采用java和echarts图表库两种工具实现粮堆三维模型的构建,充分发挥两种工具各自的优势,一方面对后端工程师更友好,开发更为简捷,高效;另一方面,采用开源的echarts图表库生成散粮堆三维云图模型,模型主要包括仓壁、粮堆顶面和侧面,可自动旋转、手动旋转、自由缩放、平移,查看十分简便。并且,可自由搭配粮堆三维云图的颜色,不同区域使用不同的颜色区分粮堆的高度,可以清晰的查看粮堆高度最大值和最小值所在的区域。与传统的数据列表相比,通过合理的颜色搭配,动态的散粮堆彩色云图呈现的总体效果良好,改变了传统的散粮堆二维和三维模型颜色单调、静态呆板形象。
106.(2)该方法适用于粮食平房仓和筒仓,能够满足粮库用户对粮堆三维可视化的业务需求。
107.(3)能够充分挖掘已有粮食数量监测设备采集的点云数据的潜在价值,生成的三维模型能够直观地反映粮堆的形态,替代仓内摄像头,节约建设资金。
108.下面以某库区的一栋粮食平房仓为对象,验证本发明方法的有效性。该粮食平房仓尺寸为53.5mx32.5m,装粮线高度为6m,粮堆进行了平仓作业,粮面平整,如图9所示,粮仓内粮堆高度约5.8m,装粮线以上为仓顶。仓房坐北朝南,以仓房西南墙角处为坐标原点,粮食数量在线监测设备的位置坐标为(23163,15760,9366)。
109.生成该粮食平房仓内粮堆三维模型的过程如下:
110.s1、将粮食数量在线监测设备采集的整仓点云数据放在计算机磁盘中,选择该粮仓某日采集的整仓点云数据文件。
111.s2、依据公式一、二、三,进行整仓点云数据坐标转换计算,得到整仓空间直角坐标数据,包括仓房和粮堆,如图10所示。
112.s3、依据判定条件二、三,进行整仓空间直角坐标数据过滤处理,去除仓房测点,仅保留粮堆顶面的空间直角坐标数据。
113.s4、使用java语言对粮堆顶面的空间直角坐标数据进行矩阵化处理,得到粮堆顶面矩阵化数据,如图11所示。
114.s5、调用echarts图表库对粮堆顶面矩阵化数据进行处理,自动生成散粮堆三维云图模型,如图12所示。三维云图模型可自动旋转、手动旋转、自由缩放、平移,查看十分简便。
115.下面以某库区的一栋粮食筒仓为对象,验证本发明方法的有效性。该粮食筒仓直径为25m,仓房处于入粮作业期间,粮面不规则,装粮线高度为28m,,装粮线以上为仓顶。以仓房地面中心为坐标系原点,粮食数量在线监测设备的位置坐标为(4413,-171,36570)。
116.生成该粮食筒仓内粮堆三维模型的过程如下:
117.s1、将粮食数量在线监测设备采集的整仓点云数据放在计算机磁盘中,选择该粮仓某日采集的整仓点云数据文件。
118.s2、依据公式一、二、三,进行整仓点云数据坐标转换计算,得到整仓空间直角坐标数据,包括仓房和粮堆,如图13所示。
119.s3、依据判定条件一、三,进行整仓空间直角坐标数据过滤处理,去除仓房测点,仅保留粮堆顶面的空间直角坐标数据。
120.s4、使用java语言对粮堆顶面的空间直角坐标数据进行矩阵化处理,得到粮堆顶面矩阵化数据,如图14所示。
121.s5、调用echarts图表库对粮堆顶面矩阵化数据进行处理,自动生成散粮堆三维云图模型,如图15所示。三维云图模型可自动旋转、手动旋转、自由缩放、平移,查看十分简便。
122.在介绍了本发明示例性实施方式的方法之后,接下来,参考图16对本发明示例性实施方式的粮仓散粮堆三维模型生成方法的相关产品进行描述。
123.图16示意性地示出了根据本发明实施例的粮仓散粮堆三维模型生成装置1000的示意框图。如图16所示,粮仓散粮堆三维模型生成装置1000可以包括处理器1001和存储器1002。其中存储器1002存储有执行本发明实施方式所述的粮仓散粮堆三维模型生成方法的计算机指令。所述计算机指令由处理器1001运行时,使得设备1000执行前文图2或图8所描述的方法。
124.需要说明的是,本发明的实施方式对粮仓散粮堆三维模型生成装置1000可具备的结构并不进行限制。
125.本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”“单元”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
126.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
127.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,
其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
128.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
129.可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
130.也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
131.应当注意,尽管在上文详细描述中提及了粮仓散粮堆三维模型生成的若干模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
132.应当注意,尽管在上文详细描述中提及了粮仓散粮堆三维模型生成方法的若干步骤,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多步骤的特征和功能可以在一个步骤中具体化。反之,上文描述的一个步骤的特征和功能可以进一步划分为由多个步骤来具体化。
133.此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
134.申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
135.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和
范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献