- 博客(227)
- 资源 (16)
- 收藏
- 关注
原创 C++ STL要学习哪些知识
按照 C++ 标准库的规定,所有标准头文件都不再有扩展名。以 为例,此为无扩展名的形式,而 为有扩展名的形式。是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的,它们各自的含义如表 1 所示。在 C++ 标准中,它们被重新组织为 13 个头文件,如表 2 所示。
2023-12-01 15:26:10
142
原创 QTableView大数据文件显示(1000万行数据)
(2条消息) QT 如何用表格显示大数量的数据_江南又旧雨的博客-优快云博客可以很快得加载完1000万行大数据,并且占用的内存也不大。int age;//使用QVector作为模型的底层数据结构存储数据,其内存占用与QList相当,尾部追加插入耗时与QList相当,但头部插入比QList耗时较多QString id;测试:开始的卡顿,主要是数据解析耗时,后面可以使用多线程加载数据,不卡顿界面。向表格中加载大数据还是非常快的。
2023-03-28 17:08:22
4266
1
原创 QTableWidget大数据文件显示(1000万行数据)
参考:上文记录了QTextEdit显示1000万行的数据的开发过程,对于QTableWidget显示大数据文件可以作为参考。QTableWidge显示大数据文件有以下几点需要注意:推荐使用:fgets(buf, BUFSIZE, ifp)或者fread(),读取文件,速度比较快。如果不需要读取所有的文件内容,可以先建立文件映射,建立映射后用mmap直接从硬盘上读取需要的行数据,此种方式读取读取效率高,占用内存小,对文件的分页显示很有用处。
2023-03-28 09:50:48
3158
原创 QT 如何用表格显示大数量的数据
int age;使用QAbstractTableModel派生类与QTableView展示数据,每条数据实际占用内存的大小是数据本身大小的1.5倍,数据量越大插入越耗时,由于底层数据结构采用链表实现,头部插入耗时与尾部追加插入耗时相当,但内存空间占用大幅下降。将底层数据结构为QList,QVector,如下图,前图为QList// 继承自 QStyledItemDelegate// 在 paint 中编写创建 Item 逻辑。
2023-03-16 14:48:01
1694
原创 VTK——自定义二维图像涂抹Widget(支持任意值涂抹),擦除,恢复。vtkCustomPaintWidget
VTK——自定义二维图像涂抹(支持任意值涂抹)
2022-08-23 10:29:27
1346
5
原创 VTK——自定义三维裁剪Widget,恢复Widget(任意形状,圆形,矩形裁剪)vtkCustomPaintWidget
vtk自定义裁剪widget
2022-08-23 09:58:22
1232
2
原创 VTK——可拖动的坐标轴MovableAxesWidget
自己实现的vtk交互效果,可以沿着轴(x,y,z)平移,沿着轴旋转,沿着平面平移,用于和双击选中的actor进行交互圆上的箭头是自定义的source,如下图:
2022-03-01 17:54:32
1271
原创 vtk ImageInfo
//测试#include <vtkSmartPointer.h>#include <vtkImageData.h>#include <vtkMetaImageReader.h>#include <vtkMatrix4x4.h> //#include <vtkImageReslice.h>#include <vtkLookupTable.h>#include <vtkImageMapToColors.h>#i.
2021-08-18 09:37:18
144
原创 vtk Transform Matirx
#include <vtkLineSource.h>#include <vtkPolyData.h>#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkRenderWind
2021-08-18 09:35:19
647
原创 Azure DevOps Server 2019 (TFS)安装教程
(1)安装教程:https://www.cnblogs.com/danzhang/p/10080190.htmlhttps://blog.youkuaiyun.com/playermaker57/article/details/86760673(2)设置用户:(3)设置仓库权限:添加下面位置,成员可以创建仓库。设置下面位置,成员对仓库没有访问权限。...
2021-03-26 16:17:43
918
1
原创 itk中的数据孔洞填充
itk提供了两个的补洞类:itkGrayscaleFillholeImageFilter(针对灰度图像), itkBinaryFillholeImageFilter(针对二值图像)具体用法不要太简单:typedef itk::GrayscaleFillholeImageFilter<ImageType,ImageType> FillHoleType;//typedef itk::BinaryFillholeImageFilter<ImageType,ImageType>
2021-03-25 14:41:29
639
原创 itk中的基本数学运算(加减乘,与或非,腐蚀膨胀开闭)
//1、加,减,乘(注意,没有除哦)#include "itkAddImageFilter.h"//加#include "itkSubtractImageFilter.h"//减#include "itkMultiplyImageFilter.h"//乘 typedef itk::AddImageFilter <ImageType, ImageType > mathFilterType;mathFilterType::Pointer mathFilter = mathFilterT.
2021-03-25 14:16:23
734
原创 itk中的基本图像操作
遍历图像//1、创建图像ImageType::Pointer mask_data= ImageType::New();//2、创建一个与image_data等大的mask图像ImageType::PointType origin_temp = image_data->GetOrigin();ImageType::SpacingType spacing_temp = image_data->GetSpacing();ImageType::RegionType inputRegion
2021-03-25 14:02:11
439
原创 conan使用(二)--conan环境搭建
从 C++ 诞生至今已经走过了几十个年头,如今越来越多的语言诞生在世界上,受到大众追捧;一些同样古老的语言在历经脱胎换骨般的发展后也迎头赶上,变得无所不能。可以看到 C/C++ 所擅长的领域正在被一点点地分割,它们的地盘正在不断地被蚕食。C++ 排名的逐步下降,除了其 Core Language 越来越复杂以外,其生态过于零碎也是一个非常大的问题。一个非常普遍的现象,C/C++ 项目如果要依赖第三方库,往往有 N 种姿势来完成这个事情:直接在源码中包裹第三方库的头文件和二进制 把第三方库的
2020-10-13 15:51:13
15678
2
原创 conan依赖管理使用方法
简述C++程序的依赖管理是一个由来已久的问题, 仅在Windows上就有程序就有Visual Studio, MinGW等多种编译器, 即使是Visual Studio下编译的结果的也有静态库, 动态库, x86,x86_x64程序之分, 针对运行和调试环境有Debug和Release2种配置, 还有MD和MT这样的动态库依赖方式之分, 仅仅针对一个库的一个版本可能产生多种编译结果, 开发团队为了自己需要会针对不同配置把一种库编译多次, 库文件的存储和管理都成问题.为了简化SOUP依赖库的管理, 为
2020-10-13 15:45:17
4271
原创 Opnecv_遍历Mat
opencv图像数据是BGR的顺序,其它的通常为RGB的顺序。The efficient wayMat& ScanImageAndReduceC(Mat& I, const uchar* const table){ // accept only char type matrices CV_Assert(I.depth() == CV_8U); ...
2020-04-02 13:15:03
206
原创 Opencv_Mat操作
Mat理解:Mat头和数据区域浅复制:Mat A, C; // creates just the header partsA = imread(argv[1], IMREAD_COLOR); // here we'll know the method used (allocate matrix)Mat B(A); ...
2020-04-02 11:40:28
228
原创 Qt事件event总结
现在我们可以总结一下 Qt 的事件处理,实际上是有五个层次:重写 paintEvent()、mousePressEvent() 等事件处理函数。这是最普通、最简单的形式,同时功能也最简单。 重写 event() 函数。event() 函数是所有对象的事件入口,QObject 和 QWidget 中的实现,默认是把事件传递给特定的事件处理函数。 在特定对象上面安装事件过滤器。该过滤器仅过滤该...
2020-04-01 16:58:08
473
原创 Qt总结_再谈:Qt5信号和槽_Qt4信号和槽
有重载的信号如果信号有重载,比如我们向 Newspaper 类增加一个新的信号:void newPaper(const QString &name, const QDate &date);此时如果还是按照前面的写法,编译器会报出一个错误:由于这个函数(注意,信号实际也是一个普通的函数)有重载,因此不能用一个取址操作符获取其地址。回想一下 Qt 4 中的处理。在...
2020-04-01 15:10:39
354
原创 Qt总结_Qt5信号和槽_Qt4信号和槽对比分析
在对于重载的信号中,Qt4信号和槽表达优于Qt5信号和槽,Qt5信号和槽兼容Qt4信号和槽兼容。所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里,以便窗口能够按照我们需要的方式进行渲染。这就涉及到组件定位的机制。Qt 提供了两种组件定位机制:绝对定位和布局定位。...
2020-03-31 17:07:55
1018
1
原创 Qt总结_对象模型_组件parent的理解
标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘。GUI 界面需要同时具有运行时的效率以及更高级别的灵活性。为了解决这一问题,Qt “扩展”了标准 C++。所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前,Qt 先使用一个叫做 moc(Meta Object Compiler,元对象编译器)的工具,先对 Qt 源代码进行一次预处理(...
2020-03-31 16:46:29
682
原创 Qt总结
(1)app的生命周期长于 组件的 的生命周期。否则这可是 Qt 编程的大忌,下面是错误的例子。#include <QApplication>#include <QLabel> int main(int argc, char *argv[]){ QApplication app(argc, argv); QLabel *label = n...
2020-03-31 15:59:28
249
原创 VTK_Learning_VTK开发理论汇总
一、VTK开发基础_智能指针与引用计数https://blog.youkuaiyun.com/shenziheng1/article/details/54974101二、VTK开发基础_vtkObject类深入分析https://blog.youkuaiyun.com/shenziheng1/article/details/54983626三、VTK管线机制_信息对象类VTKInformati...
2020-03-13 11:37:37
264
原创 VTK_Learning_交互与拾取_单位拾取
1.单位拾取示例代码:#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL)VTK_MODULE_INIT(vtkInteractionStyle)VTK_MODULE_INIT(vtkRenderingFreeType) #include <vtkSmartPointer.h>#inc...
2020-03-13 11:06:05
766
1
原创 VTK_Learning_交互与拾取_点拾取
1.拾取选择拾取是人机交互过程的一个重要功能。一个最经典的例子就是,在玩3D游戏时,场景中可能会存在多个角色,有时需要用鼠标来选择所要控制的角色,这就要用到拾取功能。另外,在某些三维图形的编辑软件中,经常需要编辑其中的一个点、一个面片或者一个局部区域,这也需要通过拾取功能来完成。VTK中定义了多个拾取功能的类,具体的继承关系如下:VTK中所有的拾取类都继承自vtkAbstrac...
2020-03-13 11:03:10
537
原创 VTK_Learning_交互部件_分割/配准类Widget与其他Widget
1.分割/配准交互部件图像分割与配准是数字图像处理技术两大主要的应用领域,特别是在医学图像处理中。著名的医学图像分割与配准工具包ITK(Insight Segmentation & Registration Toolkit)的重要应用领域就是图像分割与配准。ITK实现了许多经典的分割、配准算法,但不提供可视化功能,因此,在应用中一般都会和VTK一起用。由VTK负责分割、配准等数据处...
2020-03-13 10:35:17
346
原创 VTK_Learning_交互部件_标注类Widget的应用
1.标注类Widget在可视化程序中,经常会对某个对象做一些标注说明,比如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。VTK中,与标注相关的Widget如下表所示:vtkTextWidget:在渲染场景中生成一串标识文本,可以随意调整该文本在渲染场景中的位置,缩放其大小等。 vtkScalarBarWidget:根据输入的数据在渲...
2020-03-13 10:30:36
742
1
原创 VTK_Learning_交互部件_测量类Widget的应用
1.与测量类相关的主要Widget与测量类相关的主要Widget如下:vtkDistanceWidget:用于在二维平面上测量两点之间的距离。 vtkAngleWidget:用于在平面的角度测量。 vtkBiDimensionalWidget:用于测量二维平面上任意两个正交方向的轴长。2.创建用于测量距离的Widget应用实例先复习一下创建Widget的一般步骤:...
2020-03-11 13:26:02
503
原创 VTK_Learning_交互部件_Widget的创建
1.创建Widget交互的步骤虽然每个Widget都提供了不同的功能以及不同的API,但是,Widget的创建以及使用基本都是类似的。创建Widget的一般步骤如下:1.实例化Widget;2.指定渲染窗口交互器。Widget可以通过它来监听用户事件。3.必要时使用观察者/命令模式创建回调函数。与widget交互时,它会调用一些通用的VTK事件(94个事件列表),如StartInte...
2020-03-11 11:30:19
319
原创 VTK_Learning_交互部件_Widget应用综述
1.交互器样式遇到的难题交互器样式(如vtkInteractorStyleImage)主要是根据不同的键盘、鼠标等消息来控制相机(vtkCamera)/Actor等相关参数,从而达到了交互的目的!然而,在渲染场景中,这些交互器样式是没有表达实体的。也就是说,在交互之前,我们(用户)必须知道那些键盘消息或者鼠标消息是与哪些事件绑定的,在整个交互过程中,用户“看不到”交互器样式长什么样子,比如...
2020-03-11 11:11:27
469
原创 VTK_Learning_交互与Widget_观察者/命令模式
1.前言一个强大的可视化系统不仅需要强大的数据处理能力,也需要方便易用的交互功能。图形处理软件ParaView(hhttp://www.paraview.org)、德国癌症研究中心研发的MITK(http://www.mitk.org)等开源软件系统都提供了强大的交互功能,作为ParaView、MITK等软件构件基础的VTK同样也提供了各种各样的交互功能。VTK的交互除了可以监听来自鼠标、...
2020-03-11 10:06:49
263
原创 VTK_Learning_体绘制讨论_光照&阴影、VTKLODProp3D
1.光照与阴影通过VTKVolumeProperty可以设置体绘制阴影效果(Shading)。阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度四个参数影响。vtkVolumeProperty::SetAmbient()设置环境光系数 vtkVolumeProperty::SetDiffuse()设置散射光系数 vtkVolumeProperty::SetSpecular()设...
2020-03-08 12:02:11
902
原创 VTK_Learning_体绘制讨论_颜色传输函数
1.颜色传输函数颜色传输函数与不透明度传输函数的使用类似,二者的不同之处在于颜色传输函数是将一个标量值映射为颜色值。这个颜色值可以是RGB值,也可以是HSV值。VTK颜色传输函数采用VTKColorTransferFunction类实现,其函数为:int AddRGBPoint(double x,double r,double g, double b);int AddHSVPoin...
2020-03-08 11:50:19
1085
1
原创 VTK_Learning_体绘制讨论_梯度不透明度传输函数
1.梯度不透明度函数梯度不透明度函数是将梯度模值映射为一个不透明度乘子,从而增强过渡区域的显示效果。该函数也是使用vtkPiecewiseFunction类。例如,在不同材料的临界区域,如空气到软组织,或者软组织到骨头的临界区,梯度值会比较大,而材料的内部梯度值则会相对比较小。vtkVolumeProperty中通过如下函数设置和获取梯度不透明度函数:void SetGradien...
2020-03-08 11:42:09
713
原创 VTK_Learning_体绘制裁剪_Cripping技术
1.基于Clipping的体绘制裁剪技术Clipping技术支持VTKImageData和VTKUntructuredGrid数据类型。该功能由vtkAbstractMapper3D类提供,对于那些使用基于OpenGL的硬件裁剪技术的Mapper类,如vtkPolyDataMapper、vtkVolumeTextureMapper2D、VTKProjectedTetrahedraMapper等...
2020-03-08 10:58:44
601
自定义TableMode模型,继承QAbstractTableModel,自定义数据模型,可加载1千万行大数据
2023-03-28
QTableWidget大数据文件 文件映射mmap
2023-03-28
QTableWidget先去读全部的,再进行分页显示,表格固定的是一百行,每次操作对这一百行数据进行刷新,虚拟出完整表格的效果
2023-03-28
QTableWidget只在表格需要在屏幕上显示的那些行填充数据,不显示的不填充数据,表格行数是数据的行数
2023-03-28
QTableWidge动态加载,显示1千万行数据,开启一个线程读文件,这样就不会因为读取文件时间长导致界面卡死
2023-03-28
QCustomTextEdit自定义显示大数据,1000万行的文本文件,文件映射后,使用mmap对大文件分页显示
2023-03-22
一个标准的医学四视图浏览应用程序以及源代码
2023-03-08
NDI_CAP_Ireach_qml_ireach_countdisplay_interface_icp_framebuffer.zip
2020-01-08
NDI_CAP_Test.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_countdisplay.zip
2020-01-06
MedicalDemo3.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_vtk_icp.zip
2020-01-06
NDI_CAP_Ireach_qml_landmarker.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_vtk_ICP_registration.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_vtk_dic.7z
2020-01-06
PIVOT2.pdf
2019-12-05
世界坐标局部坐标变换.pdf
2019-12-05
zhang_paper.pdf
2019-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人