![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 50
阿酷亚莫塔塔(张学鹏)
共同学习,共同进步
展开
-
Libtorch之神经网络线性拟合(C++/Qt)
简介 对于深度学习,一般使用PYTHON接口的Pytorch或其他库,但由于本人一直使用C++语言,所以打算通过C++接口的Libtorch来搭建神经网络。下面是通过对比网上的一个Pytorch简单的线性网络例子实现的一个拟合代码。1.神经网络的创建:class myNet :public torch::nn::Module {public: myNet(int64_t n_feature, int64_t n_hidden, int64_t n_output) {...原创 2021-11-23 22:47:28 · 2528 阅读 · 0 评论 -
GDAL之投影信息变量自动消失的解决方法
1.问题简介使用GDAL获取栅格影像投影信息时,通常使用的函数为:poDataset->GetProjectionRef()或者GDALGetProjectionRef(poDataset)它们的返回值均为 const char * 类型,今天在使用其获取投影后返回值是有内容,当经过中间运行其他函数后,该返回值时而有内容,时而没有,打印出来会现在下面情况(qDebug() << "proj:" << myProj << endl;):原创 2021-11-08 18:43:40 · 581 阅读 · 0 评论 -
C++单链表学习笔记(二)
上篇博客《C++单链表学习笔记》写了关于只含首元节点不含有头节点的单链表,在这篇博客中是关于含有头节点的单链表。直接以代码的形式呈现。如下:一、链表函数//#include <QCoreApplication>#include <iostream>using namespace std;// 节点typedef struct Node{ int id; struct Node *next;}Student;// 创建链表St...原创 2020-05-17 20:35:33 · 165 阅读 · 0 评论 -
Qt Creator与Qt+VS2015调用Python代码的实现
下面来介绍分别用Qt Creator与Qt+VS2015调用Python代码,首先电脑中要安装Python IDE与Qt。我电脑中安装的是Python37,VS2015+Qt5.8、Qt Creator5.8.0,不管是哪个版本实现步骤都是一样的,均可参照。一、设置Python系统环境 这俩个路径最好是放在顶端,防止电脑中安装多个版本找不到对应的系统环境,具体...原创 2020-05-04 22:56:54 · 991 阅读 · 1 评论 -
QAxBase: Error calling IDispatch member Open: Exception thrown by server
用Qt调用EXCEL文件时会通过下面两个函数中的其中的一个来实现1. mWorkBooks->querySubObject("Open(const QString &)",fileName)2.mWorkBooks->dynamicCall("Open(const QString &)", fileName)上面两个函数都可以打开EXCEL文件,其中参数 ...原创 2020-05-04 00:38:46 · 8696 阅读 · 1 评论 -
Qt的窗口拉伸QDockWidget,一个窗口变大,另一个窗口变小
平常使用 QDockWidget 时,都是使用QtDesigner直接拖入后使用,使用时也没有什么不对劲的。今天用代码写了一个QDockWidget后发现窗口这间不能拉伸,也不能移动停靠位置,如下图不能按箭头方向拉伸控制各窗口大小。 后来发现是因为我使用布局的原因 ,我将窗口2与窗口3使用垂直布局,然后再与窗口1使用水平布局。使用布局后的QDockWidget 是不...原创 2020-04-27 10:52:58 · 3031 阅读 · 1 评论 -
QGis二次开发,基本功能实现
最近在查看QGIS源码,经过几天的努力把基本功能实现了,界面如下:其中基本功能包括新建、打开项目、打开矢量文件、打开栅格文件、保存、另存为、漫游、识别、放大、缩小、全图、二次开发帮助、图层管理。因为map工具的实现方式基本都是一样,所以只实现这几个,可还对照源码实现其他功能。一、文件功能文件功能可以参照我以前的博客。二、漫游、识别、放大、缩小、全图1.工具的创建 ...原创 2020-04-15 15:49:13 · 10431 阅读 · 21 评论 -
C++单链表学习笔记
链表是由节点与指针组成,每个节点的形都是由NEW创建出来的存放在堆中,比如:,必须要明白 new book2是创建出来了一个对象,而这个对象是放入堆中然后是由一个p1指针指向这一个地址,在链表中会有上个节点的next指针也指向这个地址,要记住p1与上个节点的next指针之间是没有联系的,只是都指向同一个地方而已,如果一个改变是不会对另一个指针产生影响的链表的动态创建://...原创 2020-03-31 13:46:28 · 196 阅读 · 0 评论 -
如何查看安装后的GDAL版本号
随着GDAL版本的不断更新,从原来的1.x到现在的3.x。在学习GDAL的过程中我们参考的学习资料有些是对应旧版本的GDAL,新旧版本的有些地方是不一样的,比如2.x与3.x打开矢量数据的API与gdalwarp.cpp内的一些函数发生了变化,所以在学习的过程中遇到新旧版本问题时就需要进入源码查看,若非自己编译的GDAL就需要下载对应的源码版本,下面是查看安装后G...原创 2020-03-22 19:20:20 · 7875 阅读 · 0 评论 -
QT读取文件夹内的特定格式的文件
本文介绍的是在文件夹内读取TIF文件,将文件的绝对路径保存到一个列表中,具体的函数代码如下:QList<QString > qt_fileList::getFileList(QString dir){ QDir dirFile(dir); QList<QString > files_abs_path; QList<QFileInfo > files...原创 2020-02-16 20:22:32 · 628 阅读 · 0 评论 -
QGis二次开发,子父窗口同步与不同步加载影像
今天写了两个窗口来来加载影像,一个是父窗口的Canvas另一个是子窗口的Canvas,我写子窗口是为了写几何校正的所以用到了一个Canvas来显示影像与校正的成果,但是我发现每次要显示影像时,子窗口的Canvas显示影像就会引起父窗口的Canvas也显示同一张影像,如下:上面就是子父窗口的影像同步显示,这是因为在子窗口的影像显示时有下面一行代码,其中my_rasterLa...原创 2020-01-03 20:51:41 · 624 阅读 · 0 评论 -
QGis二次开发,栅格影像像元识别工具的实现(下)
代码:1.重写鼠标事件// 创建一个自己的类(*.h)class myMapCanvas : public QgsMapCanvas{ Q_OBJECTpublic: myMapCanvas(QWidget *parent); ~myMapCanvas();signals: void sendXY(QPoint point);protected: vir...原创 2020-01-01 22:54:07 · 378 阅读 · 0 评论 -
QGis二次开发,栅格影像像元识别工具的实现
栅格影像像元识别是GIS中普通的工具,在这篇文章中就用QGis的二次开发来说说是怎么实现的,因为难度不大,所以在这就不过多的来说。在QGis中在工具栏中,如下图: 这个工具的实现不同的人会有不同的方法,我用的是对QgsMapCanvas重写,添加一个鼠标点击事件来获取当前鼠标的坐标值,再用QgsMapToolIdentify来实现被点击像元的值。结果如下:...原创 2019-12-31 22:43:15 · 1390 阅读 · 1 评论 -
QGis二次开发,栅格图层波段的保存
对于栅格或矢量影像的读取并显示出来在前面的文章中已经写出,显示方面可以参考前面的文章。在这个文章中主要写的是把栅格影像读取出来后,若是对其进行了处理后如何把栅格波段保存成为TIF格式的文件。 如果学习过GDAL的话就很容易理解,和GDAL的保存成TIF文件差不多,下面是具体的代码与步骤,可以作为参考:1.首先是获取栅格图层 QgsRasterLayer ...原创 2019-12-27 17:44:13 · 2055 阅读 · 0 评论 -
QGis二次开发,栅格影像计算
最近在写一个栅格计算器,用到了两个类,一个是QgsRasterCalculatorEntry,另一个是QgsRasterCalculator。这两个类就可以实现栅格计算器的功能。 在使用QgsRasterCalculatorEntry与QgsRasterCalculator这两个类之前要引入一个头文件#include <qgsrastercalculator....原创 2019-12-26 19:03:10 · 2707 阅读 · 7 评论 -
QGis二次开发,引用头文件后遇到无法解析的外部符号
在我们写程序时有时会遇到无法解析的外部符号 ,常见的情况解决方法网上都找到。在这要解决的是QGis二次开发引用头文件后遇到无法解析的外部符号,这个问题的解决花费了好大的精力,也走了不少弯路,庆幸的是最后得以解决了,当然少不了网友的帮助。 我要写的程序是进行影像的栅格计算,在抠源码时把源码写入自己的程序后就出现问题了,我引入的头文件是#include <q...原创 2019-12-25 19:41:17 · 1213 阅读 · 3 评论 -
GDAL基本的函数(自学笔记一)
//注册文件的格式 GDALAllRegister(); const char * pszfilename2 = "E:\\hdf2tif\\1.tif"; //获取数据集 GDALDataset *opDataset = (GDALDataset *)GDALOpen(pszfilename2,GA_ReadOnly); if (opDataset == NULL) {...原创 2019-12-27 14:22:00 · 1090 阅读 · 1 评论 -
关于GDAL运行时出现Cannot find proj.db的解决办法
前几天电脑上配置了VS2015+GDAL3.X的环境,生成解决方案没有问题,只要是运行就会出现一堆Cannot find proj.db,具体的问题如下:ERROR 1: PROJ: createGeodeticReferenceFrame: Cannot find proj.dbERROR 1: PROJ: proj_as_wkt: Cannot find proj.dbERROR ...原创 2019-12-19 20:52:07 · 26734 阅读 · 20 评论 -
QGis二次开发,打开影像并在Qt控件中显示
在这介绍的是通过QGis的二次开发,将影像打开后然后显示在Qt的控件中,我用的这个控件是QTabWidget。总体的思想是就是将QgsMapCanvas这个类的实例化对象添加到QTabWidget里面,显示QTabWidge的时候就会把QgsMapCanvas也显示出来,这就实现了通过Qt的控件来显示影像。1.首先将QgsMapCanvas这个类的实例化对象添加到QTabWid...原创 2019-12-23 19:45:09 · 3649 阅读 · 6 评论 -
NetCDF(c++接口)读取NC文件信息
在这里介绍的是用NetCDF(c++接口)读取NC文件信息,主要包括NC文件里的维度与变量,我用的VS2015+Qt+NetCDF进行读取的,至于这个环境的配置可以参考我的上一篇文章,在这里我就不介绍环境的配置了。不过你也可用VS+NetCDF进行读取,把结果展示在控制台窗口内,我用Qt的目的是为了将读取结果展示在一个表格控件内。1.首先读取文件QString filen...原创 2019-12-02 16:44:03 · 6362 阅读 · 3 评论 -
在Windows环境下配置NetCDF(c++接口)+VS2015(可以含Qt)
虽然本文中介绍的是NetCDF+VS2015,但是其他版本的VS的配置NetCDF步骤是一样(本人用同样的方法配置成功VS2013),因为要配置的是C++接口的NetCDF-cxx,所以要先把C语言版的NetCDF-c配置成功。我用的是netcdf-c-4.7.3与netcdf-cxx4-4.3.1。具体步骤如下:1.首先下载NetCDF-c与NetCDF-cxx下载地址...原创 2019-11-28 20:49:23 · 3380 阅读 · 16 评论