- 博客(53)
- 资源 (15)
- 收藏
- 关注

原创 Qt、GDAL遥感影像显示
影像显示原理 显示遥感影像在业界做得比较牛逼的有ENVI,Erdas,以及ArcGIS软件。其实我并不想列举ArcGIS软件,但是ArcGIS毕竟是行业的大佬,所以。。 遥感影像一般小到几百兆大到几个G,像这个么大的数据ENVI以及Erdas等软件是如何将它们显示出来呢!其实我一开始也比较好奇,同时也比较纳闷。这么大的数据,加载进来,软件居然一点都不卡,响应效率非常...
2019-04-15 15:55:01
7437
120
原创 影像拉伸优化
使用GDAL读取影像数据之后,需要进行拉伸显示。比如读取landsat数据时,由于数据类型时ushort,如果直接显示,那么显示的结果就是一片空白。因此我们需要对数据进行拉伸,将ushort拉伸到0-255。因此出现以下三种拉伸方法。
2024-01-08 00:05:11
703
1
原创 QOpenGLWidget 第八篇 手动绘制点、线、三角形
上一篇介绍了如何随机生成线,这一片,将介绍如何手动绘制线。 手动绘制线就是根据鼠标在绘图区内点击鼠标,从而绘制线段,由于我们目前所处的状态是透视投影,也就是近大远小。而且看到的并不是一个二维平面,而是三维的,所以鼠标获取的xy坐标与实际绘制出来的是不一样。下面我们进行代码编写:1、在鼠标状态枚举值中添加一个获取点的枚举之后:kMousePoint = 4;enum MouseStatusFlag{ kMouseNone = 0, kMouseMove = 1, kMo...
2021-10-19 17:02:13
3536
原创 QOpenGLWidget第七篇 vao、vbo随机绘制线
在QOpenGLWidget第六篇中我们实现了投影转换和相机空间变换,接下来我们继续往下学习vao、vbo随机绘制线; 用vao绘制线有两种方法,第一种,一个vao一个vbo,但是给vbo分配足够大的内存,然后往vbo中写入随机生成的顶点数据;第二种每一条线段对应一个vao和vbo。在这里我们使用第二种方法。 在前面的章节中我们都是使用QOpenGLVertexBuffer和QOpenGLBuffer实现绘制三棱锥,在后面的章节中我们将不再使用QOpenG...
2021-10-19 15:13:08
1725
1
原创 QOpenGLWidget第六篇(简化相机类)
1、在第五篇中我们实现了一个OpenGLMVP投影转换类以及OpenGLCamera相机类,在这里我们用另一个已有的QMatrix类来替代这两个投影变换以及相机空间类。在QMatrix矩阵类中,已经存在接口perspective来设置透视投影和otho正射投影。而且还存在接口lookAt这个类来设置观察方向。有了这三个接口,那我们就可以完全去掉投影转换以及相机空间。改动地方:1、在OpenGLWidget头文件中将 OpenGLCamera *m_pCamera; 替换为QMatrix4x4
2021-10-19 11:29:27
1387
原创 QOpenGLWidget 第五篇(相机空间)
OpenGLWidget头文件:#ifndef OPENGLWIDGET_H#define OPENGLWIDGET_H#include "QtGui/QOpenGLBuffer"#include "QtWidgets/QOpenGLWidget"#include "QtGui/QOpenGLVertexArrayObject"#include "QtGui/QOpenGLFunctions_4_5_Core"class OpenGLCamera;class QOpenGLShade
2021-10-17 21:25:21
791
原创 QOpenGLWidget 第四篇(透视投影)
OpenGLWidget 头文件:#ifndef OPENGLWIDGET_H#define OPENGLWIDGET_H#include "QtGui/QOpenGLBuffer"#include "QtWidgets/QOpenGLWidget"#include "QtGui/QOpenGLVertexArrayObject"#include "QtGui/QOpenGLFunctions_4_5_Core"class QOpenGLShaderProgram;class Op
2021-10-17 21:15:54
792
原创 QOpenGLWidget 第三篇(旋转平移缩放)
头文件#ifndef OPENGLWIDGET_H#define OPENGLWIDGET_H#include "QtGui/QOpenGLBuffer"#include "QtWidgets/QOpenGLWidget"#include "QtGui/QOpenGLVertexArrayObject"#include "QtGui/QOpenGLFunctions_4_5_Core"class QOpenGLShaderProgram;class OpenGLWidget :
2021-10-17 17:33:51
2237
1
原创 QOpenGLWidget 第二篇EBO、VBO、VAO(绘制三棱锥)
头文件#ifndef OPENGLWIDGET_H#define OPENGLWIDGET_H#include "QtGui/QOpenGLBuffer"#include "QtWidgets/QOpenGLWidget"#include "QtGui/QOpenGLVertexArrayObject"#include "QtGui/QOpenGLFunctions_4_5_Core"class QOpenGLShaderProgram;class OpenGLWidget :.
2021-10-17 16:16:36
1344
3
原创 QOpenGLWidget 第一篇(VBO绘制三角形)
头文件#ifndef OPENGLWIDGET_H#define OPENGLWIDGET_H#include "QtGui/QOpenGLBuffer"#include "QtWidgets/QOpenGLWidget"#include "QtGui/QOpenGLFunctions_4_5_Core"class QOpenGLShaderProgram;class OpenGLWidget : public QOpenGLWidget , protected QOpenGLF
2021-10-17 16:01:55
966
4
原创 网络摄像头第二篇(远程服务端)
远程服务端1、作用2、服务器界面2.1、界面2.2、摄像头端连上服务器2.3、服务器放在外网3、NetServerTCP 实现3.1、NetServerTCP 头文件3.2 、NetServerTCP源文件3.3、解释4、ClientsList 实现(实现了INetServerReactor反应器)4.1、ClientsList 头文件4.2、ClientList 源文件4.3、解释5、调用5.1、注册类5.2、模块初始化1、作用远程服务器在网络摄像头中起的是一个桥接的作用,将摄像头服务端与摄像头客户端
2020-11-30 23:57:47
3384
1
原创 软件打包工具2.0版本
软件打包工具1、软件界面1.1、软件打开1.2、打开脚本2、菜单说明2.1、文件2.2、打包2.3、视图2.4、选项2.5、帮助3、软件演示1、软件界面1.1、软件打开1.2、打开脚本2、菜单说明2.1、文件1、打开脚本:加载打包脚本,打开之后,在目录树上会自动显示脚本信息。2、保存脚本:保存设置好的工程,方便下次打包。在打包软件的时候,必须要先保存脚本。3、退出:关闭软件2.2、打包1、 添加脚本:添加一个新的打包脚本工程2、打包软件:开始执行软件打包功能2.3、视图
2020-11-29 18:39:27
4802
1
原创 软件打包安装工具第四篇(打包工具原理及技术)
打包工具原理及技术1、MV模型2、打包原理2.1、方案一2.2、方案二3、结束语1、MV模型打包工具采用的是MV模型,采用此模型的原因是因为打包界面中打包列表、文件列表以及属性面板显示的是同一份数据,这就相当于多个视图一份数据,要实现同步显示。采用这种模型的好处是只要数据已发生改变,那么视图就会自动进行更新,这样就不需要我们再去关心显示不同的问题。想要了解MCV模型的童鞋可以看之前写的文章:交互式系统(MCV模型)2、打包原理打包也就是将多个文件按照一定的格式写到一个总的文件中,当然这个最后文件是
2020-11-29 18:38:09
1493
原创 软件打包安装工具第三篇(安装程序源码)
安装程序源码1、安装程序核心模块1.1、注册PackageCore类1.2、初始化1.3、PackageCore类2、安装程序启动界面模块2.1、注册PackagePict类2.2、模块初始化2.3、PackagePict类3、安装程序许可模块3.1、注册PackageLice类3.2、模块初始化3.3、PackageLice类4、安装程序软件说明模块4.1、注册PackageInfo类4.2、模块初始化4.3、PackageInfo类5、安装路径模块5.1、注册PackagePath类5.2、模块初始化5
2020-11-29 17:27:41
773
4
原创 软件打包安装工具第二篇(引导程序源码)
引导程序1、引导程序mian函数启动安装界面创建隐藏文件夹释放资源文件(安装界面)解压资源文件(安装界面)将安装界面作为资源写入exe压缩文件(安装界面)将压缩的安装界面作为资源文件写入exe中2、使用引导程序2.1、安装界面文件结构安装界面的配置文件安装程序界面:启动界面显示是startpicture.bmp图片软件许可是读取license.lic文件中的内容。软件信息读取information.inf文件中的内容安装路径安装进度界面1、引导程序mian函数//不显示控制台界面#pragma co
2020-11-28 03:44:58
1655
5
原创 网络摄像头第一篇(原理)
摄像头开篇1、思路1.1、名称1.1.1、摄像头服务端1.1.2、摄像头客户端1.1.3、远程服务端1.2、解决方案1.3、图示最近一直想写一个远程摄像头监控的程序,由于一直很忙,所以都没有着手去写。到昨天晚上躺在床上,思来想去,还是搞一下。1、思路1.1、名称1.1.1、摄像头服务端 捕捉摄像头的软件,主要用来读取摄像头数据,然后发送数据到摄像头客户端。1.1.2、摄像头客户端 显示摄像头服务端传输过来的数据。1.1.3、远程服务端 用来连接摄像头客户端和摄像头服务端。1.2、解
2020-11-15 13:55:15
4583
2
原创 影像处理第四篇之中值滤波(软件插件篇)
影像处理第四篇之中值滤波1、插件编写教程2、影像插件基类讲解3、中值滤波3.1、头文件3.2、源文件4、注册类5、添加函数6、注册命令7、执行功能7.1、选择数据7.2、选择文件7.3、设置核大小7.3、浏览数据1、插件编写教程2、影像插件基类讲解3、中值滤波3.1、头文件#ifndef RASTERMEDIANBLUR_H#define RASTERMEDIANBLUR_H#include "seed_rastercore/irasterprocess.h"BEGIN_DOX_NAME
2020-11-14 16:15:36
460
原创 影像处理第三篇之高斯滤波(软件插件篇)
文章目录1、插件编写教程2、影像插件基类讲解3、高斯滤波3.1、头文件3.2、源文件4、注册类5、添加函数6、注册命令7、执行功能7.1、选择数据7.2、选择保存的文件7.3、浏览数据1、插件编写教程2、影像插件基类讲解3、高斯滤波3.1、头文件#ifndef RASTERGAUSSIANBLUR_H#define RASTERGAUSSIANBLUR_H#include "seed_rastercore/irasterprocess.h"BEGIN_DOX_NAMESPACEcla
2020-11-14 15:29:51
487
原创 Doxygen框架开发文档以软件更新说明
@[TOC] Doxygen框架开发文档及软件更新说明前言前几天用HTTP实现了一个小型了Web段服务器,可以部署在局域网或者公网。这样就可以将本机上的html文件显示在浏览器上进行浏览。部署之后,发现自己不会HTML,只能现学现卖,同时又可以学习一下前端开发。访问地址框架介绍下图是框架介绍的首页,里面包含了框架开发历程。帮助文档下图是框架的帮助文档框架开发的软件打包软件遥感影像文档查看器图像处理工具网络嗅探、主机扫描、端口扫描工具TCP多客户端通讯,单管道、双管道通讯小型
2020-11-10 12:00:55
296
原创 影像处理第二篇之波段运算(软件插件篇)
影像处理第二篇之波段运算1、插件编写教程2、影像插件基类讲解3、波段运算3.1、波段运算文件3.2、波段运算源文件4、注册波段运算类5、添加波段运算函数6、注册波段运算命令7、执行波段运算功能7.1、选择数据
影像处理第一篇之影像旋转(软件插件篇)1、插件编写教程2、影像插件基类讲解3、影像旋转3.1、影像旋转头文件3.2、影像旋转源文件4、注册影像旋转类5、添加影像旋转函数6、注册影像旋转命令7、执行影像旋转功能7.1、选择数据7.2、选择保存的文件7.3、浏览软件之后的数据1、插件编写教程2、影像插件基类讲解3、影像旋转3.1、影像旋转头文件#ifndef RASTERROTATE_H#define RASTERROTATE_H#ifndef IRASTERPROCESS_H#include
2020-10-15 02:05:56
462
原创 影像插件基类讲解
影像插件基类讲解1、[软件插件编写教程](https://editor.csdn.net/md/?articleId=109026982)2、基类【IRasterProcess】2.1、基类代码2.2、接口讲解2.2.1、数据处理名称2.2.2、影像处理之后的大小2.2.3、图像分块处理大小2.2.4、影像数据处理1、软件插件编写教程2、基类【IRasterProcess】影像处理插件的注册类都是从IRasterProcess继承。影像数据输入是使用了OpenCV中的图像句很Mat,处理完的影像数据也
2020-10-15 01:26:54
392
原创 编写软件第一个插件(Hello World)
文章目录插件环境搭建可以看前面一篇博客注册命令添加函数调用程序初始化函数注册类插件环境搭建可以看前面一篇博客注册命令添加函数1、在rastertestcmd.h添加初始化函数以及功能函数的声明/* @接口 程序初始化 * @邮箱 575814050@qq.com * @时间 2020年10月12日 */bool initApplication();/* @接口 测试命令 * @邮箱 575814050@qq.com * @时间 2020年10月12日 */void raster
2020-10-12 14:47:02
1493
原创 软件插件开发教程
文章目录软件插件开发教程环境准备环境搭建配置开发库编写种子模块(插件)软件插件开发教程环境准备1、Visual Studio 20152、Qt 5.93、OpenCV4.2 Release版本4、GDAL 2.35、doxygen开发库压缩好的下载地址:环境搭建1、Visual Studio 2015和Qt5.9安装请自行百度2、创建一个Qt工程填写完项目名称和位置之后,直接点击创建就可以了。配置开发库1、添加包含的头文件路径2、添加lib库路径3、添加链接库文件
2020-10-12 13:36:31
5484
原创 MFC与Qt资源文件的区别以及释放
MFC与Qt资源文件的区别以及释放1、MFC资源文件添加与释放1、MFC资源文件添加1.1、通过在解决方案上右击--->添加--->资源。1.2、资源添加成功之后,双击xxx.rc文件,在资源视图中可以看到刚才添加资源rc文件。1.3、右击该资源文件,点击添加资源1.4、在添加资源对话框中点击自定义,输入资源类型,比如我这里用MDBFILE作为资源类型(这个后面会用到)1.5、添加资源类型之后,选中该资源类型,添加导入,选择需要作为插入文件1.6、添加完成之后,可以在资源视图中看到资源ID为ID
2020-09-13 15:06:10
678
2
原创 OpenCV4.2+GDAL3.0+Qt读取影像进行显示
OpenCV4.2+GDAL3.0+Qt读取影像进行显示环境部署环境搭建下面开始使用添加好的OpenCV以及GDAL如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导...
2020-04-05 12:47:42
1246
7
原创 Qt 界面卡死或者进度条不正常显示进度信息
最近在写程序打包软件,但是在程序打包的过程想动态的显示打包的文件,却发现打印信息只能在程序完成之后才会将信息打印出来。如下图所示: 于是去查询Qt的事件机制,发现只要在在打印的地方加上qApp->processEvents()这一句或者QCoreApplication::instance()->processEvents();就可以发现原来阻塞打印的信...
2020-02-29 03:34:14
3169
原创 文档查看器(Open XML)格式工具
先运行文档查看器,然后再菜单上点击打开文件:打开文档之后界面显示:左侧面板是文档的内部结构,中间是各个部件的属性值(控制文档的字体,显示颜色等格式),右侧是左侧面板中节点的内容。下图是文档用office打开显示的结果:资源还在审核中,通过之后,立马把链接发出来。...
2020-02-26 08:15:35
1645
7
原创 凸包生成(二分法)
琢磨了几天,终于将二分法凸包生成搞定了。下图是自己随便绘制的线段,通过这些线段的节点从而计算出一个凸包。这个图是利用二分法生成的凸包。下面将生成凸包的原理以及代码进行介绍: /* @接口 生成凸包 * @参数 Point2dArrray 点集 * @返回 Point2dArrray 凸包上的点 * @邮箱 575814050@qq.c...
2019-05-30 18:02:32
1083
2
原创 点集排序(快速排序)
点集排序算法,首先是要定义单个点如何确定大小,它不像数字那样是一维的,点是一个二维,所以在定义点的时候要定义点如何比较大小。 点的大小一般来说,都是从左到右,从下到上的一个顺序,也就是说首先比较X方向,然后再比较Y方向。下面是我自己定义的一个点的类:class DoxPoint2d{public: float _x, _y; /* @接口...
2019-05-28 15:55:05
3081
原创 VA助手点号“."变为了”->"解决方法
很烦,每次想用类或者结构体变量的成员的时候,点”."总是变成了"->“,为此每次都要按一下删除键,然后才会出现成员变量或者成员接口。但每次这样都不是办法,所以自己摸索了一下,发现原来这个是可以在VA选项里面可以设置的,具体操作如下:第一步:打开VA选项第二步:在左侧面板中选中Editor第三步:在右侧面板中可以看到有一个转换点到指针这个复选框,我们将第一个选中,第二...
2019-05-22 14:11:16
393
原创 将多边形实体进行旋正
在进行几何实体操作时,有时候是需要将实体安装”最长边“进行旋转,例如:旋转之前旋转之后 从第一个图中可以看出,实体最长的边是有很多个节点,如果我们直接安照多边形中最长的边进行旋转那么最终的结果是下图这样的:直接按照最长边 这样就不是我们想要的结果,所以在计算旋转角度的时候,我们需要先将一些共线的点给忽略掉,这样我们就可以计算出最长的边。...
2019-05-07 17:31:13
373
原创 遥感影像显示(GDAL+Qt+VS)提供程序下载地址
写一个遥感显示软件不容易,写了几个月,终于出了一个版本,软件支持插件加载,也就是可以加载别人开发的功能,但前提是要使用本软件的库(通俗的说也就是二次开发,这样的模式主要是方便一些搞算法研究的人或者一些有自己想法的人但又不想自己写影像显示,只热衷于算法的研究,那么这个小软件可以满足您的要求),此软件是使用C++语言开发,显示效率和ENVI差不太多,但是和ArcGIS相比,只能说有那么一...
2019-04-24 23:29:06
1581
7
原创 QTreeView以及QTableView拖拽等操作
要想让QTreeView和QTableView支持拖拽目前我所知道的方法有两种:第一种是直接在Qt Designer中直接设置属性:将如果想让控件仅仅支持拖拉的方式,那么将dragEnable进行打钩,并将dragDropMode设置DragOnly当然如果想让控件支持两种模式,那么直接设置为DragDrop属性如果想在QTreeView中将数据拖拉到QTableView中,那...
2019-04-23 00:13:25
7885
2
原创 QDialog 添加菜单以及工具条以及其他控件
网上大部分的博客给QDialog添加菜单都是使用QLayout子类的addMenu添加菜单,但是我今天试了一下发现有严重的问题,在QtDesign中设计如下:当前选中的QLayout为要添加的菜单,下面一个QLayout为工具条,但是这样显示出来的效果如下:可以发现下面的控件都被遮住了。所以在这里不能直接使用QLayout添加菜单,而是要通过QWidget,将QLayout添加...
2019-03-16 17:10:31
5108
QOpenGLWidget利用vao,vbo、ebo随机绘制线段
2021-10-19
利用QOpenGLWidget实现鼠标控制相机的平移缩放等操作
2021-10-19
软件打包小工具2.0版本
2020-11-01
Doxygen框架开发的库.rar
2020-10-12
图像处理工具.rar
2020-03-01
软件打包工具.rar
2020-03-01
软件打包程序.rar
2020-02-29
software.rar
2020-02-19
OpenCV 4.2.rar
2020-02-19
遥感影像显示(GDAL+Qt+VS)浏览以及影像格式转换
2019-04-24
网络嗅探,主机扫描,端口扫描
2019-01-10
C++搭建框架,利用OpenGL、GDAL、Qt进行分块显示遥感影像
2018-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人