自定义TableMode模型,继承QAbstractTableModel,自定义数据模型,可加载1千万行大数据
自定义TableMode模型,继承QAbstractTableModel,自定义数据模型。
可以很快得加载完1000万行大数据,并且占用的内存也不大,可加载1千万行大数.
使用QVector作为模型的底层数据结构存储数据,其内存占用与QList相当,尾部追加插入耗时与QList相当,但头部插入比QList耗时较多
QList<Student*> m_itemList;
QTableWidget大数据文件 文件映射mmap
QTableWidget大数据文件显示 文件映射mmap
如果文件很大,读取全部的数据会占用很大内存,推荐文件映射的方法,每次交互只读需要显示的文件数据。文件映射1G左右的文件,大概在1.2s左右可以完成文件映射;再进行分页显示,表格固定的是一百行,每次操作对这一百行数据进行刷新,虚拟出完整表格的效果。
测试:QTableWidge分页显示1千万行数据,建立mmap文件映射,只读取需要显示的部分文件内容,此种方式速度快,占用内存小,内存占用149MB左右,每次只读取显示部分的数据,推荐此种方式。
QTableWidget先去读全部的,再进行分页显示,表格固定的是一百行,每次操作对这一百行数据进行刷新,虚拟出完整表格的效果
QTableWidget先去读全部的,再进行分页显示,表格固定的是一百行,每次操作对这一百行数据进行刷新,虚拟出完整表格的效果。
测试:QTableWidge分页显示1千万行数据,此种方法优化了文件的读取,可以快速的读取全部的文件内容,表格也只100行,占用内存较小。但是读取了全部大文件,文件占用的较大部分的内存。
QTableWidget只在表格需要在屏幕上显示的那些行填充数据,不显示的不填充数据,表格行数是数据的行数
先去读全部的,再进行分页显示,只在表格需要在屏幕上显示的那些行填充数据,不显示的不填充数据,表格行数是数据的行数。
QTableWidge动态加载,显示1千万行数据,开启一个线程读文件,这样就不会因为读取文件时间长导致界面卡死
QTableWidge动态加载,显示1千万行数据,动态文件加载,开启一个线程读文件,这样就不会因为读取文件时间长导致界面卡死;在QTableWidge采用分页显示,每次交互只加载需要在屏幕上显示的那些行数据,表格固定的是一百行,每次操作对这一百行数据进行刷新,虚拟出完整表格的效果。https://mp.csdn.net/mp_blog/creation/success/129790199
QCustomTextEdit自定义显示大数据,1000万行的文本文件,文件映射后,使用mmap对大文件分页显示
对应地址博客:https://blog.csdn.net/weixin_38293453/article/details/129662982?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22
背景:
项目中需要解析1千万多行的文本数据,并显示在QTextEdit中,如果直接读取,直接显示会导致软件非常卡,并且占用非常大的内存。
思路:
在开始实现前,我们最好有一个清晰的思路,可以建个简单的模型:
因此需要优化四个方面:
(1)如何快速的解析文件的每一行。
(2)QTextEdit显示全部的数据会直接卡死,如何分页显示,只显示屏幕可见的那一部分数据。 自定义QScrollbar,按照百分比显示
(3) 分页显示,需要先建立文件映射,建立文件的每一行首地址直接映射到内存空间或者硬盘的存储空间,如何快速的匹配换行符位置。
(4)文件映射后,可以使用mmap对大文件只读取
QTableWidget常用实现方式 - 有多少就创建多少,就显示多少
QTableWidget常用实现方式 - 有多少就创建多少,就显示多少,此种方法会卡界面。
QTableView-MODEL VIEW 自定义模型实现.rar
QTableView_MODEL VIEW 自定义模型实现,使用标准的StandModemos
QTableView-MODEL VIEW 标准模型实现
QTableView_MODEL VIEW 标准模型实现,性能分析,使用自定义的Mode,大大减小了内存的使用。
一个标准的医学四视图浏览应用程序以及源代码
一个标准的医学四视图浏览应用程序,包含源代码,源代码比较老,需要的环境是QT 4.8.4 + VS2010 + VTK 5.10.0,详情见博客:https://blog.csdn.net/weixin_38293453/article/details/129406204。
软件已经完成了医学图像四视图的显示。
横断面、矢状面、冠状面还有最后的三维视图。
所谓三维视图就是借助多平面重建(MPR)来展示的。
可以从图中看出,这个程序还完成了VTK中文显示,
还有一些常用的交互操作。
例如:左键放大缩小,右键调整HU值,换切片等,都是联动的
NDI_CAP_Ireach_qml_ireach_countdisplay_interface_icp_framebuffer.zip
该例子为NDI导航头的数据解析,包含TX的和BX类型的数据解析,能够通用到windows系统和Ubuntu系统,并对NDI官方的BUG做了修改,可以拿来直接使用;导航头的工具数据和散点数据在一个线程中采集,可以和qml界面交互,数据传输到qml端的类也完成了封装,可以参考学习;并且可以进行Ireach的散点采集,进行手术导航前的配准。
NDI_CAP_Test.zip
NDI导航头数据解析,解析BX数据,解析TX数据,可以直接拿去用,是对官网的导航头数据解析的一个扩展,比官网的提供的解析功能强大,可以参考学习。
NDI_CAP_Ireach_qml_ireach_countdisplay.zip
qml和c++交互学习的例子,NDI通信解析BX和TX数据,更高级的例子请查看icp_framebuffer.zip例子
MedicalDemo3.zip
VTK对CT数据的处理,生成STL,对CT进行切片等等操作,有时间可以按照源码学习。VTK对CT数据的处理,生成STL,对CT进行切片等等操作,有时间可以按照源码学习。
NDI_CAP_Ireach_qml_ireach_vtk_icp.zip
VTK中的ICP配准例子,可用于学习ICP配准。VTK中的ICP配准例子,可用于学习ICP配准。VTK中的ICP配准例子,可用于学习ICP配准。
NDI_CAP_Ireach_qml_landmarker.zip
landMark配准学习资源,有详细的注释,对初学者很有帮助!landMark配准学习资源,有详细的注释,对初学者很有帮助!
NDI_CAP_Ireach_qml_ireach_vtk_ICP_registration.zip
vtk中的ICP配准算法,此例子提供了ICP配准的使用方法。vtk中的ICP配准算法,此例子提供了ICP配准的使用方法。
NDI_CAP_Ireach_qml_ireach_vtk_dic.7z
vtk读取dicm的demo,并且使用Marchingcube提取数据中的点集,并存储到.xyz文件中,并实现了读取.xyz文件,将文件中的点云提取出来。
lic_image.zip
lic 图像增强 图像模糊的图片!
PIVOT2.pdf
旋转标定(Pivot Calibration)
目的: 对每个探针来说, 都有自身的一个参考架(物体坐标系), 但是在导航系统中, 通过反
光球可以识别到的是: 探针的坐标中心位置(3 个自由度, xyz 位置)以及姿态(3 个自
由度, 旋转关系), 但并不给出探针针尖的坐标. 标定的目的就是找到针尖在探针坐
标系下的位置(该位置是固定不变的), 然后再结合动态的探针坐标系变化值, 在任意
运动时都能计算得到针尖在摄像头坐标下的运动值!
方法: 将探针的针尖部位固定, 然后手持探针整体陀螺式地旋转运动(必须保持针尖卡住不
动),这样探针上每一点都在某一固定球面上运动, 包括探针坐标系的原点
sunguihua.zip
CT图片,可用于开发测试!!!
世界坐标局部坐标变换.pdf
世界坐标—物体坐标之间的变换矩阵及齐次表示
问题: 在描述物体或点所在位置时, 我们往往只使用(世界)坐标系来表示. 然而在某些特殊的
情况下, 比如刚体的某个特征点相对刚体并不会运动, 此时如果使用物体坐标系, 该
点的坐标保持为定值, 从而只需要关注此刚体的特征点在世界坐标中的变化即可; 刚
体上的其余点在世界坐标系的变化规律均可通过此点的物体坐标间接得出
test_3D_20190909194333.xyz
头模点云数据,可以直接使用3D软件(Meshlab等)打开查看。
zhang_paper.pdf
A Flexible New Technique for Camera Calibration
Zhengyou Zhang
December 2, 1998
(updated on December 14, 1998)
(last updated on March 25, 1999)
Technical Report
MSR-TR-98-71