- 博客(103)
- 资源 (30)
- 收藏
- 关注
原创 QGraphicsView(平移/缩放/旋转)
包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。平移速度默认为 1.0,可以使用 setTranslateSpeed() 来改变。和 Google 地图一样,在管理大量 Item 的时候,通常需要 View 具有交互(平移/缩放/旋转)功能。Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,
2024-03-26 19:02:57 326
原创 利用gdal读写DEM数据(.tif格式)
结果:生成的out.tif文件,数值和输入dem一致,具有空间参考:体会:代码主要是综合了下B站那位up主写的和参考网站1的代码,还是对用gdal库读取数据,以及该库的API的有了比较深刻的印象,后续继续对DEM数据进行一些统计分析,完善该程序,最好能可视化出该dem。
2024-03-26 10:31:32 247
原创 GDAL中的地理坐标系、投影坐标系及其相互转换
注意:这种方式定义的坐标轴与例3相反,如果使用这样方法,后面的poCT->Transform(1, &x, &y)影改为poCT->Transform(1, &y, &x)。《GDAL源码剖析与开发指南》
2024-03-25 18:53:27 420
原创 GDAL 获取影像任一点坐标,对该点坐标进行坐标转换,如投影坐标转换为地理坐标,UTM转WGS84
【代码】GDAL 获取影像任一点坐标,对该点坐标进行坐标转换,如投影坐标转换为地理坐标,UTM转WGS84。
2024-03-25 15:26:12 64
原创 QGraphicsScene缩放后复原 QGraphicsView放大缩小移动
首先需要明白,view在整个视图框架中的角色是用于显示scene的,所以决定了如何展示scene,包括scale()函数,用于放大缩小所展示的scene;centerOn()函数,决定scene的中心在何方。所有的操作,都不会直接改变scene,改变的只是如何展现scene。view就像窗户,我们可以透过窗户看到窗外的景色。scene就像窗外的景色,需要窗户作为媒介才能够让我们看到,只不过这里的景色(scene)不一定会比窗户(view)大。
2024-03-25 10:42:57 664
原创 QGraphicsView实现图片放大、缩小、鼠标拖动、以鼠标点放大缩小
【代码】QGraphicsView实现图片放大、缩小、鼠标拖动、以鼠标点放大缩小。
2024-03-25 09:55:05 333
原创 GDAL 超大遥感影像读取和存储
即使不是进行地理遥感方面的应用研究,GDAL也是一个非常有用的库,因为它可以支持大量我们常见的图像数据,比如jpg,gif之类的。这里要说一个数据集的概念,也就是所谓的Dataset。不同的图像格式的存储的数据类型是不一样的,比如我的这个tif用的是UInt16,也就是无符号的短整型,其他的用的可能就是byte型或其他类型的了。这里返回的信息是一个数据类型的编号,对应枚举类型GDALDataType中的一个值,在此tif的数值是2,对应GDT_UInt16,如果希望返回可读性比较强的信息,可以如下。
2024-03-22 17:11:44 679
原创 C++之GDAL读取tiff文件,获取行列坐标值
原文链接:https://blog.csdn.net/weixin_43712770/article/details/122017317。tif中坐标计算的方法如下,其中Col表示该坐标点处图像的列号,ROW表示该坐标点处图像的行号。比如图像左上角Col为0,ROW为0,图像右下角Col为图像宽度,ROW为图像高度。
2024-03-22 11:24:18 108
原创 QT+GDAL实现影像的读取和显示
详细流程参考https://blog.csdn.net/deirjie/article/details/37872743。
2024-03-22 10:54:15 427
原创 地球椭球面上多边形面积量算(C++代码)
昨天突然测试的时候发现以前产品中写的地球椭球面上面积计算的代码有点问题,于是今天就彻底修正,从QGIS中抠出代码来用C++重写了一下,新代码可以比较准确计算椭球面上多边形的面积,这个基础函数对空间量算功能中的面积量测非常重要,在这里共享出来供大家参考甚至直接拿过去用。主要的函数是ComputePolygonArea,计算出来的面积单位是平方米。经过测试,可以满足要求。
2024-03-22 09:48:28 118
原创 QImage打开分辨率大的图片会报错:QImageIOHandler: Rejecting image
/我们的9344*7000的单通道图片就有62.3MB大小,而QImage是按照四通道来限制内存的,所以62.3MB*4=249.2MB。需要高于此限制的 QImage 内存分配的图像将被拒绝。注意:只有Qt6版本才有这个函数QImageReader::setAllocationLimit,Qt5是没有的。//解决办法就是扩容,使用setAllocationLimit函数,设置一个大于249.2MB的数值就可以。所以QImage想正常打开一幅10000*10000的图片,需要预先设置。
2024-03-21 18:29:54 409
原创 交互式QGraphicsView(平移/缩放/旋转)
Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。平移速度默认为 1.0,可以使用 setTranslateSpeed() 来改变。和 Google 地图一样,在管理大量 Item 的时候,通常需要 View 具有交互(平移/缩放/旋转)功能。按空格键逆时针旋转,回车键顺时针旋转。
2024-03-21 15:26:52 387
原创 Qt QGraphicsView移动、缩放
首先需要明白,view在整个视图框架中的角色是用于显示scene的,所以决定了如何展示scene,包括scale()函数,用于放大缩小所展示的scene;centerOn()函数,决定scene的中心在何方。所有的操作,都不会直接改变scene,改变的只是如何展现scene。view就像窗户,我们可以透过窗户看到窗外的景色。scene就像窗外的景色,需要窗户作为媒介才能够让我们看到,只不过这里的景色(scene)不一定会比窗户(view)大。
2024-03-21 15:05:48 1200
原创 QT QGraphicsView 在鼠标点击处进行放大缩小
对图元进行放大缩小时,发现图形总是越来越跑偏,无法像地图中那样,点击哪里就能放大哪个地方。方法,使用QGraphicsView类的设置属性函数.在构造函数中增加下面两个函数即可。如下所示:此时放大缩小的焦点并不在鼠标位置。
2024-03-21 14:34:36 340
原创 使用图形视图框架(Graphics View Framework)在QML中创建交互式图形界面
在main.cpp中,使用函数将自定义的类注册为QML类型,以便在QML文件中使用。通过以上步骤,您可以在QML中成功集成图形视图框架,创建交互式的图形界面。这使您能够轻松地管理和展示2D图形元素,为用户提供出色的图形体验。无论是游戏开发、数据可视化还是其他需要图形界面的应用程序,Qt的图形视图框架为开发者提供了一个强大的工具,使其能够以直观和交互式的方式与用户进行互动。希望本文对您理解如何在QML中使用图形视图框架提供了一些帮助。如果您想深入学习和探索这个主题,可以查看Qt官方文档和示例代码。
2024-03-21 10:41:16 798
原创 QGraphicsView的使用,view坐标,scene坐标,item坐标
QGraphicsView是QT的图形视图组件,在UI设计器的Display Widgets分组QGraphicsView没有与mouseMoveEvent()相关的信号,需要继承自定义一个派生类。
2024-03-21 10:10:44 361
原创 Qt 显示图片
QGraphicsScene是图形视图框架的一部分QGraphicsScene还提供了一些功能,可以让您高效地确定项目的位置,以及确定在场景的任意区域中哪些项目是可见的。首先我们得创建一个QGraphicsScene用来存储要显示的东西的,它是一个容器。然后我们往容器里面添加要显示的东西,也就是图片(fileName代表的是图片路径)。(对不起,我错了,我太年轻了,这种也是可以进行很多操作的)需要引入opencv库文件,有vs的Qt引入就只需要加入库文件,lib库就可以了。
2024-03-21 09:36:30 338
原创 基于QGraphicsView的图像显示控件,支持放大、缩小、鼠标拖动
这是一个Qt平台的基于QGraphicsView类的图像显示控件,支持输入QPixmap、QImage、opencv的从cv::Mat类。实现平台:Windows 10 x64 + Qt 6.2.3 + MSVC 2019 + opencv 4.5。
2024-03-20 19:41:52 652 1
原创 OpenGL+QT实现矢量和影像的叠加绘制
GIS数据读取采用自己实现的简化版GIS引擎来读取,其实这里引擎部分实现的是符合OpenGIS简单要素访问协议规范的GIS内核,数据读取引擎只不过是将文件中的数据读出来转换为引擎中的数据结构,下一步可以实现简单的插件架构,GIS内核封装为底层核心API,各种数据读取封装为数据驱动插件API,然后在底层核心API和插件API的基础上构建应用程序。这个确定了之后,接下来该确定影像的读取范围,是读取整个范围还是一部分,这个需要简单的计算,根据矢量的MBR,下面的代码是确定影像读取范围的行列号。
2024-03-20 19:05:09 851
原创 QT中使用GDAL多线程读取遥感图像到QImage
GDAL 是一个很强大的可以读取很多格式 的带有GIS信息的栅格型图像。前阵子项目中需要读取,并显示到QT界面,由于遥感图像一般很大,所以采取新开一个读图线程的方式来读取,防止界面假死。下面是代码共享,测试通过读取500MB的24000*24000像素GeoTiff图并在QT的QGraphicsView中显示。环境:VS2005+SP1, Qt 4.6.0, GDAL 1.6.2。
2024-03-20 12:03:08 459
原创 osgEarth入门-01安装开发环境
VS 2019社区版。由于OSG第三方依赖我使用了VC 2017 x64的版本,所以需要给vs2019安装vc2017的编译环境。后面有所预编译或者源码编译均采用VC2017版本。
2024-03-18 14:32:30 861
原创 osgEarth学习笔记4-第一个OsgEarth QT程序
原因是没有加载到osgEarth的plugins动态库,之前我们是osg的plugins都考过来了,现在到下面目录。以Release模式编译执行,然后参考前一篇笔记,拷贝相关依赖项进入exe目录。把里面dll都拷贝到exe目录下的osgPlugins-3.6.5目录下即可。使用QT Creator新建一个窗口项目。编辑main.cpp。
2024-03-18 14:12:11 433
原创 osgEarth学习笔记3-第二个Osg QT程序
以Release模式编译,拷贝上个笔记提到的dll到exe目录,注意要调用windeployqt解决部分qt依赖项。打开QT Creator,新建一个窗口项目。修改main.cpp文件。
2024-03-18 14:08:06 461
原创 osgEarth学习笔记2-第一个Osg QT程序
前提是使用vcpkg安装了osg、osgEarth的库和依赖项,如果没有的话,cmake会找不到相关的路径。我是使用了外网机器vcpkg构建好的库(osgearth-vcpkg-installed),下载到本机,很奇怪cmake-gui竟然能够自己找到对应的include和lib目录。路径可以参考下面截图。从install目录下的osg目录拷贝plugins-3.6.5目录到exe目录,如下图。注意带d的文件是我之前用debug模式编译的结果,但是exe跑不起来,没时间研究了。解压,建立build目录。
2024-03-18 14:05:44 427
原创 osgEarth学习笔记1-安装osgEarth开发环境
出现libxml2错误,手工下载(具体链接vcpkg会打印在控制台上,很奇怪,只有这个库从浏览器下载就可以,自动下载就是不行)放到vcpkg的downloads目录下,再次运行命令vcpkg install osgearth:x64-windows,vcpkg会接着上次运行的进度继续运行,这点太贴心了。问题是:各种网上的方案要么是版本太老了,要么是各种库的下载,各种依赖项缺失,因为你永远不会知道别人的机器已经安装了哪些库。安装firefox,慢的要死,忍了,毕竟1核2GB还要跑windows。
2024-03-18 14:00:31 921
原创 解决VS编译中文报错 error C2001:常量中有换行符
通过把源文件转换为gbk编码,但是只能一个一个文件转换,当导入项目文件较多时,这个方式明显不太好。当然也可以通过python脚本批量转换,但是还是比较麻烦。项目->右键属性->C/C++ -> 命令行,在下方输入框添加 /utf-8,就会在编译时采用utf-8编码来编译。产生原因:文件中有中文字符,但是文件是utf-8格式的,使用msvc编译器编译时就会产生上述错误。通过在项目里设置编译选项,/utf-8。
2024-03-14 16:23:25 364
原创 QGIS3.28的二次开发二:不重新编译QGIS进行二次开发
由于重新编译QGIS对于初学者来说还是有一定难度,因此这里介绍另外一种不编译QGIS也能够二次开发的方法,不需要下载QGIS的整套源码。
2024-03-14 11:36:03 808
原创 C++中的常量指针和指针常量
首先是一个指针,然后这个指针指向的里面值是一个常量。里面值不能修改,但是地址可以修改。:本质是一个常量,指针指向这个常量,地址值不可以改变,但是里面的值可以修改。
2024-03-11 14:55:59 343
原创 手写RANSAC实现点云粗配准
此过程重复固定次数,每次生成因点太少而被丢弃的模型,或将优化模型与相应的误差度量一起进行。在后一种情况下,如果优化模型的误差低于上次保存的模型,我们将保留该模型。然后,根据拟合模型测试所有其他数据,如果某个点与估计的模型非常契合,则也将其视为假设的进一值。该模型是从所有假设的入值中重新估计的,因为它仅从初始的假设入值集进行估计。模型拟合到假设的入值,即模型的所有自由参数都是从进值重建的。如果有足够的点被归类为假设的入值,则估计的模型是相当好的。最后,通过估计值相对于模型的误差来评估模型。
2024-03-08 16:33:34 757
原创 vs2008 unicode工程问题集
问题的原因是字符串ANSI和Unicode编码的区别: VC6与VS2003等默认使用ANSI编码,而VS2008默认采用Unicode。简单的说,ANSI用1个字节表示字符,Unicode用2个字节表示1个字符。b、在左边下拉菜单中,选择configuration properties --> General --> 在左边project default 中character set中设置 not set。如果是自己的函数:检查是否使用#include 改为#include “xxx.h”
2024-03-05 12:14:30 342
原创 在pycharm中,使用open3d得到pcd变量无法使用智能函数提示。解决方法
我们在pycharm中open3d的时候,读取数据得到的pcd变量无法使用智能提示符,通常这样很麻烦,但是可以通过类型注解的方法解决这个问题。
2024-02-29 12:19:49 414
HLMSEditor/bin目录下缺少的dll文件
2023-05-24
xshell5安装配置.docx
2020-02-25
CGAL Arrangements and Their Applications A Step-by-Step Guide.rar
2020-02-15
架构探险——从零开始写Java Web框架 绝对完整!强烈推荐
2019-01-16
《跟老男孩学习Linux运维:Shell编程实战》带标签目录 绝对完整!!!
2019-01-09
跟老男孩学linux运维 核心系统命令实战-高清-完整-带目录 绝对完整!!! 绝对完整!!!
2019-01-09
跟老男孩学linux运维 web集群实战
2019-01-09
java Threads and the Concurrency Utilities
2017-10-08
jquery官方指定教材三本
2017-06-18
java se 8.0 pdf
2017-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人