# Linte **Repository Path**: tianyayouge/linte ## Basic Information - **Project Name**: Linte - **Description**: 点云编辑软件,使用 OpenGL 开发 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-02 - **Last Updated**: 2023-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # `Linte` #### 一、介绍 ​ `Linte` 为一款自主研发的点云编辑软件,使用 `Qt` + `OpenGL` 开发,可以打开 7 种格式的点云文件;支持展示、移动、缩放、框选、删除、取消删除、导出等功能。其中展示支持三种模式,经纬度模式,时间-经度模式,时间-纬度模式。 #### 二、数据类型 > 数据来源:unknown > > 文件格式:`.txt` > > ``` > 2022-05-10,07:55:11.212,Start log on L04, Datum: WGS84, UTM zone: 49, Using GNSS no: 1 > > YYYY-MM-DD,hh:mm:ss.sss,Northing ,Easting ,Depth ,LocFwd ,LocStb ,Accuracy,Heading,Roll,Pitch,Heave > 2022-05-10,07:55:13.436,1951721.666,727967.516,487.831,-339.768,22.744,0.547,180.640,0.650,0.929,0.120 > 2022-05-10,07:55:18.426,1951720.013,727967.788,490.317,-343.174,23.000,0.550,180.600,-0.690,0.620,0.120 > 2022-05-10,07:55:23.399,1951716.728,727967.678,494.368,-345.526,22.889,0.553,180.510,0.030,0.690,-0.110 > 2022-05-10,07:55:28.382,1951714.170,727968.352,497.530,-348.312,22.297,0.557,180.440,-0.270,0.910,0.040 > 2022-05-10,07:55:33.372,1951711.414,727968.447,500.445,-350.600,22.677,0.559,180.420,0.150,0.405,-0.010 > 2022-05-10,07:55:38.336,1951708.229,727968.633,504.010,-353.142,23.771,0.563,180.570,-0.230,0.640,-0.030 > ``` > 数据来源:unknown > > 文件格式:`.txt` > > ``` > $PTSAG,#00001,224830.340,04,04,2023,01,9001.093634,N,11100.000000,E,0,-009.58,0,0000.00*77 > $PTSAX,#00001,224830.340,04,04,2023,01,00000,00000,0,0000,1,0000*49 > $PTSAG,#00001,224830.340,04,04,2023,00,1747.547100,N,11100.041391,E,0,0000.00,0,0000.00*60 > $HEUUSBLG,224830.34,04,04,2023,9001.0936335,N,11100.0000000,E,0,0.000,*3B > $HEUUSBLX,224830.34,04,04,2023,0.000,0.000,0.000,0,*1F > $GPGGA,224830.34,9001.0936335,N,11100.0000000,E,1,06,0.5,00000.0,0,0,0000*79 > $PTSAG,#00002,224836.340,04,04,2023,01,9001.093634,N,11100.000000,E,0,-009.53,0,0000.00*79 > ``` > 数据来源:unknown > > 文件格式:`.csv` > > ``` > "$GPRMC,005140,A,1536.6757,N,11259.1060,E,0.3,266.9,050423,0.9,W,A*03",2023-04-05 08:51:37 > "$GPRMC,005142,A,1536.6756,N,11259.1059,E,0.2,266.9,050423,0.9,W,A*0B",2023-04-05 08:51:43 > "$GPRMC,005144,A,1536.6757,N",2023-04-05 08:51:48 > "$GPRMC,005146,A,1536.6757,N,11259.1063,E,0.4,102.7,050423,0.9,W,A*0E",2023-04-05 08:51:53 > "$GPRMC,005148,A,1536.6757,N,11259.1063,E,0.2,102.7,050423,0.9,W,A*06",2023-04-05 08:51:58 > "$GPRMC,005206,A,1536.6755,N,11259.1064,E,0.2,263.8,050423,0.9,W,A*01",2023-04-05 08:52:07 > ``` > 数据来源:unknown > > 文件格式:`.csv` > > ``` > "$GPGGA,005140,1536.6757,N,11259.1060,E,1,10,1.2,22.0,M,9.8,M,,*4A",2023-04-05 08:51:38 > "$GPGGA,005142,1536.6756,N,11259.1059,E,1,10,0.9,21.7,M,9.8,M,,*4D",2023-04-05 08:51:43 > "$GPGGA,005144,1536.6757,N,11259.1060,E,1,10,0.9,21.5,M,9.8,M,,*42",2023-04-05 08:51:48 > "$GPGGA,005146,1536.6757,N,11259.1063,E,1,10,0.9,21.3,M,9.8,M,,*45",2023-04-05 08:51:53 > "$GPGGA,005148,1536.6757,N,11259.1063,E,1,10,1.0,21.3,M,9.8,M,,*43",2023-04-05 08:51:58 > "$GPGGA,005204,1536.6756,N,11259.1065,E,1,10,0.9,21.3,M,9.8,M,,*47",2023-04-05 08:52:02 > ``` > 数据来源:unknown > > 文件格式:`.txt` > > ``` > System: Phins6000DVL_Position > Col 1: Date and Time > Col 2: Latitude Phins6000DVL_Position (Phins6000DVL_Position) (Receiver Datum) > Col 3: Longitude Phins6000DVL_Position (Phins6000DVL_Position) (Receiver Datum) > Col 4: Easting Phins6000DVL_Position (Phins6000DVL_Position) (Survey Datum) > Col 5: Northing Phins6000DVL_Position (Phins6000DVL_Position) (Survey Datum) > Col 6: Height Phins6000DVL_Position (Phins6000DVL_Position) (Receiver Datum) > Col 7: ROC Horizontal Position Phins6000DVL_Position (Phins6000DVL > Col 8: Speed over Ground Phins6000DVL_Position (Phins6000DVL_Posit > Col 9: CalcMode Phins6000DVL_Position (Phins6000DVL_Position) > (Exported data only every 10.0 seconds) > 2020/8/31 05:33:53.160, 17;19;32.132 N, 113;55;31.252 E, 811077.13, 1918707.18, -35.22, 0.00, 0.00, 0 > 2020/8/31 05:34:03.161, 17;19;32.265 N, 113;55;31.493 E, 811084.22, 1918711.40, -36.53, 0.82, 0.81, 0 > 2020/8/31 05:34:14.160, 17;19;32.428 N, 113;55;31.789 E, 811092.87, 1918716.56, -37.58, 0.89, 0.89, 0 > 2020/8/31 05:34:25.161, 17;19;32.599 N, 113;55;32.119 E, 811102.54, 1918721.96, -39.99, 1.02, 1.02, 0 > 2020/8/31 05:34:35.161, 17;19;32.756 N, 113;55;32.442 E, 811112.02, 1918726.93, -43.38, 1.08, 1.08, 0 > 2020/8/31 05:34:45.161, 17;19;32.900 N, 113;55;32.783 E, 811122.03, 1918731.51, -48.08, 1.28, 1.28, 0 > ``` > 数据来源:unknown > > 文件格式:`.xlsx` > > ``` > NavigationLog 2023-03-01 > UTC(SYS) UTC(GPS) Local(GPS) Event Position COG SOG HDG STW Chart Info > 23:59:55 2023-03-02 00:17:30 2023-03-02 08:17:30 Ship Watch " 09º09.130'S 104º30.979'E" 9.2 9.2 8.1 8.6 Cell:xxxxxx > 23:59:40 2023-03-02 00:17:15 2023-03-02 08:17:15 Ship Watch " 09º09.169'S 104º30.973'E" 9.3 9.3 8.0 8.6 Cell:xxxxxx > 23:59:25 2023-03-02 00:17:00 2023-03-02 08:17:00 Ship Watch " 09º09.207'S 104º30.966'E" 8.5 9.3 7.3 8.6 Cell:xxxxxx > 23:59:10 2023-03-02 00:16:44 2023-03-02 08:16:44 Ship Watch " 09º09.243'S 104º30.961'E" 9.0 9.3 7.6 8.7 Cell:xxxxxx > 23:58:55 2023-03-02 00:16:30 2023-03-02 08:16:30 Ship Watch " 09º09.284'S 104º30.955'E" 9.2 9.2 8.2 8.6 Cell:xxxxxx > 23:58:40 2023-03-02 00:16:14 2023-03-02 08:16:14 Ship Watch " 09º09.319'S 104º30.949'E" 9.4 9.2 8.7 8.7 Cell:xxxxxx > ``` > 数据来源:软件 `Linte` 导出 > > 文件格式:`.txt` > > ``` > 113.148703 17.640620 2022-05-10-07:55:13.436 > 113.148705 17.640605 2022-05-10-07:55:18.426 > 113.148704 17.640575 2022-05-10-07:55:23.399 > 113.148710 17.640552 2022-05-10-07:55:28.382 > 113.148710 17.640527 2022-05-10-07:55:33.372 > 113.148712 17.640498 2022-05-10-07:55:38.336 > ``` #### 三、软件开发 ​ 软件使用 `C++` 语言开发,使用了 `Qt` 开发框架,通过 `OpenGL` 技术绘制点云;支持的数据精度为小数点后六位,超出精度部分显示会不准确。由于 `OpenGL` 顶点着色器中的位置信息采用了 `vec4` 类型,即 `float` 数组类型,导致软件在绘制点位置的时候,最多只能有 7 位小数的精度,超出部分会不精确。 ​ 软件在开发过程中,不依赖于具体的平台库,整个程序可以快速移植到其它平台运行。 #### 四、操作文档 ​ 1、启动软件 ​ 在 `Windows 10` 系统上打开此软件的目录,通过双击 `Linte.exe` 或通过鼠标右键 + 打开菜单启动软件。 ​ 2、打开文件 ​ 通过点击软件左上角 `打开` 按钮,唤起文件选择对话框,在对话框种选择 `txt` 、`csv` 、`xlsx` 、`xls`格式的单个或多个文件,点击对话框种的 `打开` 按钮,让软件打开选中的文件。 ​ 3、导出 ​ 如果点云编辑完成,点击软件左侧上方的 `导出` 按钮,会弹出文件保存对话框,在对话框中选择保存文件的位置和名称,最后点击 `保存` 按钮,软件将会把当前屏幕中未被标志为删除状态的点都以固定的格式保存到指定的文件中。 ​ 4、聚焦 ​ 打开的文件在被正确解析之后,显示在屏幕上的点呈现亮绿色,如果点云的中心不在屏幕中间,点击软件右侧中间的 `聚焦` 按钮,即可将点云中心移动至屏幕中心,并自动将视图缩放至刚好使得屏幕能够看到整个点云数据,打开一个文件的时候,软件会自动执行一次缩放,保证打开文件后可以立即看到点云。 ​ 5、连线 ​ 在软件解析了有效的点云文件后,点击软件右侧中间的 `连线` 按钮,软件将绘制一条将所有的点按照顺序连接起来的折线,且折线显示在点云上一层;再次点击 `连线` 按钮将隐藏连线。 ​ 6、网格 ​ 在软件解析了有效的点云文件后,点击软件右侧中间的 `网格` 按钮,软件将绘制当前点云的范围网格,用户可通过该网格,大致确认点云的经纬度范围或时间范围,再次点击 `网格` 按钮将隐藏网格。 ​ 7、底图 ​ 通过 `打开` 按钮,可以加载一个 `geo tiff` 图片,如果选择了多个图片,只会显示最后一张,底图默认为显示状态,通过重复点击 `底图` 按钮来切换底图的显示状态; ​ 8、移动 ​ 通过鼠标左键在软件界面除按钮区域外的其它区域按下不释放,并移动鼠标,来将视图移动不同位置。 ​ 9、缩放 ​ 在软件界面上使用鼠标滚轮,可以实现视图的缩放;注意,如果一直不断放大视图,过高的精度会导致界面显示异常。 ​ 10、框选 ​ 按住键盘 `空格` 键不释放,鼠标会变成十字准心形状,此时,按住鼠标左键不释放并移动鼠标,软件会在鼠标的按下位置和鼠标当前位置绘制一个矩形框;此时释放鼠标左键,如果方框的范围中包含了一些点,这些点云变成 `橘红色` 高亮,表示这些点已经被选中了;再次框选其它位置的点,会导致上次选中的点不再被选中,框选一个空的位置会让所有的点都不被选中。 ​ 11、删除 ​ 按照第 7 步选中了目标点之后,点击软件右侧中间的 `删除` 按钮,选中的目标点将被标记成删除状态,软件将不再显示删除状态的点。 ​ 12、清理 ​ 彻底删除所有的点,无法撤销,界面将被重置到原始位置。 ​ 13、撤销 ​ 如果希望上次删除的点再次被显示,可以点击软件右侧中间的 `撤销` 按钮,每次点击该按钮,都会取消一次删除动作,直到所有被删除的点都再次被显示, ​ 14、经 - 纬 模式 ​ 点击软件右侧中间的 `经 - 纬` 按钮,软件将采用经纬度模式显示点云,横轴为经度,纵轴为纬度。 ​ 15、时 - 经 模式 ​ 点击软件右侧中间的 `时 - 经` 按钮,软件将采用时间戳+经度模式显示点云,横轴为时间戳,纵轴为经度。 ​ 16、时 - 纬 模式 ​ 点击软件右侧中间的 `时 - 纬` 按钮,软件将采用时间戳+纬度模式显示点云,横轴为时间戳,纵轴为纬度。