- 博客(98)
- 资源 (12)
- 收藏
- 关注
原创 vtkResliceImageViewer中显示多张图片
通常用于显示单张图像。如果你想要显示多张图片,你可以使用。以下是一个简单的例子,展示如何使用。
2024-08-13 10:36:25
175
原创 可通过小球进行旋转的十字光标(vtkResliceCursor)
vtkResliceCursor vtkResliceCursorPicker vtkResliceCursorLineRepresentation vtkResliceCursorRepresentation
2024-06-17 16:55:50
287
原创 Gitea提交代码自动触发Jenkins构建版本
http://192.168.0.136:8090 为jenkisn地址,/generic-webhook-trigger/invoke?token= 固定不变,ruoyi-ui-8978456465 这个Jenkins中配置的token 值。获取到WebHooks 地址,git服务器(gitlab,gitee,gitea,)添加webhook,,这个时候提交代码可以触发自动构建完成。
2024-02-22 14:47:58
685
原创 vtkImageContinuousErode3D 和vtkImageDilateErode3D 图像的腐蚀和膨胀
代码分为两部分,一部分是服饰,一部分是用另一种方式进行腐蚀膨胀。可以提取代码进行运行。
2024-01-05 15:29:37
483
原创 vtkDicomReader设置图像像素在Z方向上的间距SetDataSpacing(double x,double y,double z)
但是,在处理从医院获取的CT数据时,却发现这组数据的Spacing Between Slices的Tag是没有值的。MR或CT等数据是三维的,在构建后的三维体数据vtkImageData中当SetSpacing()时,需要分别设置x,y和z方向上的像素间距。最终的解决方案时,在CT数据中,通过读取相邻两幅Dicom切片的Image Position(Patient), 然后将这两个Image Position进行相减,得到的结果中非零的那个值便是这个体数据在z方向的像素间距。
2023-02-16 13:55:36
405
转载 Gitea在windows平台的安装和简单使用教程
官网介绍:Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。详情可以到官网了解。也就是说Gitea一个git管理工具,类似构建自己的github,但是github仓库需要公开(私有付费),国内的gitee免费的也有一定的限制,而且是线上的。,然后会看到登录界面,点击登录,输入刚才的管理员账号密码,就能成功登录了。
2023-02-04 18:59:18
3794
转载 DCMTK模拟PACS:Debugging with DCMTK
仔细检查一下命令行参数以及dcmqrscp.cfg配置文件,发现在本地测试的时候我们将dcmqrscp.exe模拟的PACS服务器监听端口和可能连入的客户端端口都设置成了11110,因此在进行图像传输的过程中会发生冲突,为了验证我们的猜测,将ACME1客户端的端口修改为12345,再一次进行movescu的测试,指令如下:movescu.exe -v -S-aec ACME_STORE -aet ACME1 -aem ACME1。打开dcmtk工具包中的dcmqrscp.cfg文件,其中的注释已经很清楚。
2022-11-02 15:28:36
894
转载 DICOM医学图像处理:基于DCMTK工具包学习和分析worklist
通过利用dcmtk工具包中的dump2dcm.exe可以将.dump文件转换成.wl文件,转换后的.wl文件就是worklist数据库文件。下面简单的给出几个图像,形象的描述一下worklist的作用。从中我们可以看到服务端给我们的反馈是PatientID为123456的患者信息,所返回的信息都是wlistqry.wl文件中要求的字段,其中通过-k 0010,0020=“123456”限定项来限定了查询的结果,在服务端的反馈是两个患者中表明有一个匹配的worklist数据库文件,如上图中黄色区域所示。
2022-11-02 15:12:29
1599
原创 Qt多个进程界面集成在一起,成为一个界面
最接在做一个项目,觉得原来的项目特垃圾(O(∩_∩)O),就想到多进程的方法。可是怎么将多个进程的界面(主进程),集合到一起就成了一个问题。在前人的基础上基本完成了自己的目标。然后根据QWindow指针,创建一个容器窗口界面,最后放到容器界面的verticalLayout_Process布局上去。可以看到:MyWidget1.exe启动后,会将自己的WId 写进一个SettingInfo.ini文件中。//根据获取的QWindow指针创建一个容器来放子窗口界面。这样就把两个进程发到一个容器中了。
2022-10-11 09:35:08
4855
1
原创 Ubuntu18.04搭建jenkins,并关联Github
选择configure global security。注:如果找不到密码,可以去~下目录下去找,如下图。添加用户,单击”Apply"->"save" .运行过程,终端会打印密码,拷贝出来。将刚才密码拷贝进去,自动安装插件。
2022-10-07 19:38:48
451
原创 vtkImageViewer2 解析
vtkImageViewer2是一个非常有用而且也经常用的类,它简化了我们通过管线处理数据的工作,内部封装了vtkRenderWindow,vtkRenderer,vtkImageActor,vtkImageMapToWindowLevelColors等一些有用的类。
2022-09-20 17:00:56
1140
1
原创 ITK 读取一个目录中的一个序列,然后改变头信息,将多张dcm图像写成一个dcm文件。
代码】ITK读取一个目录中的一个序列,然后改变头信息,将多张dcm图像写成一个dcm文件。
2022-07-30 07:33:57
450
原创 模仿vtk的Widget控件,制作画矩形的控件
本文模仿vtkAffineWidget和vtkAffineRepresentation制作了vtkRectangleRepresentation2D,可以在MPR上画矩形框,并且可以移动和放大缩小。易用性上还有待改善,吾将继续努力!
2022-07-20 10:54:41
728
原创 利用 vtk 的控件画圆和矩形
代码改造了vtkAffineReprentation2D,使其在2d平面上可以画圆,和矩形。vtkAffineReprentation2D虽然也能画圆和矩形,但是不能放大缩小,也不能移动。本人改造了vtk代码使其可以放大缩小,更可以移动。
2022-07-20 10:39:25
1306
1
原创 自定义Qt互斥按钮
先展示几种状态: 第一个按钮被选中,第二个按钮被选中,第一个自动弹起。再次单击第二个按钮,第二个按钮弹起。恢复到初始状态。没有一个按钮被选中。这样就实现的按钮互斥的关系。这些按钮是我从 QWidget继承重写的。现发布出来。后续会继续改进。......
2022-06-10 13:49:46
1380
原创 QPushButton源码及自定义按钮
最近想做一个自定义QPushButton使其具有,normal,hover,pressed三种状态,并且具有互斥性,发现QPushButton不能实现自己的想法(不想用QRadioButton),毕竟QPushButton和QRadioButton还是不同的,比如QPushButton可以按下,然后再单击一次,按钮又弹起。而一组按钮又可以互斥。这是QRadioButton是不能实现的,所以就拔了一下Qt的源码。先看位置:qtbase:widgets:可以看到 qabstractbu.
2022-05-21 15:36:17
884
转载 C++17新特性
1 C++17 介绍每次C++版本的发布都会带来很多新的特性,C++17也不例外,虽然有很多期待的特性没有包含进来,但是新增的特性依然挡不住它独特的魅力。C++17发布于2017年,ISO C++ 委员会将其正式命名为:ISO/IEC 14882:2017。2 C++17新特性2.1 折叠表达式从C++17开始,可以使用二元操作符对形参包中的参数进行计算,这一特性主要针对可变参数模板进行提升,可以分为左折叠和右折叠。支持的二元操作符多达32个。有一点需要注意的是,如果形参包为空包,那么展
2022-03-02 10:14:40
8580
原创 单个dcm文件含有多帧数据,如何拆分成多个dcm文件
最近研究了题目中的问题:bool Parse2Dcms(std::string infilePath, std::string output_path){ if (!this->filepath.length()) { cout << "No No parent dcm filepath! error" << endl; return false; } DcmFileFormat fileformat; OFCondition oc = fi
2022-02-22 16:38:57
1731
6
原创 为切面叠加颜色
先上代码:onDisplayColorMprPixel(vtkImageViewer2* imageViewer, vtkImagePlaneWidget* imagePlane,int slicerIndex){ vtkSmartPointer<vtkImageViewer2> viewerLayer = vtkSmartPointer<vtkImageViewer2>::New(); //viewerLayer->SetRenderWindow(..
2022-01-25 17:51:53
314
1
原创 Qt Creator4.5终于可以调试了
之前安装了qt-opensource-windows-x86-5.10.0版本,自带Qt Creator4.5.0,安装时候无论是否选择mingw,调试都无法进行,于是,一顿百度。所有都说要安装wdksetup.exe, 安装了几个版本也没有成功,主要根本就没有cdb.exe调试器。最终终于找到了适合VS2015的wdksetup.exe版本,这是说缺少qtcreatorcdbext,找来找去也没找到,找到的也要分。今天把他们奉献出来,随便下载,如遇到问题可相互联系!...
2021-12-20 22:22:07
198
转载 Qt MetaObject 详解
这个系列的几篇文章通过阅读Qt帮助文档和相关的源代码来学习研究Qt meta-object所提供的功能,及其实现的方式。 Qt meta-object系统基于三个方面:1、QObject提供一个基类,方便派生类使用meta-object系统的功能;2、Q_OBJECT宏,在类的声明体内激活meta-object功能,比如动态属性、信号、槽;3、Meta Object编译器(MOC),为每个QObject派生类生成代码,以支持meta-object功能。QObject定义了从一个QO...
2021-12-16 10:55:00
7921
原创 命令行模式
使用示例: 命令模式在 C++ 代码中很常见。 大部分情况下, 它被用于代替包含行为的参数化 UI 元素的回调函数, 此外还被用于对任务进行排序和记录操作历史记录等。识别方法: 命令模式可以通过抽象或接口类型 (发送者) 中的行为方法来识别, 该类型调用另一个不同的抽象或接口类型 (接收者) 实现中的方法, 该实现则是在创建时由命令模式的实现封装。 命令类通常仅限于一些特殊行为。概念示例本例说明了命令设计模式的结构并重点回答了下面的问题:它由哪些类组成? 这些类扮演了哪些角色? 模式
2021-11-11 18:06:00
759
转载 OpenGL编程
总结一下以上程序的执行过程:1. 传统的初始化,创建窗口2. 调用glewInit初始化glew库3. 使用glGetString查询显卡和OpenGL以及GLSL等信息4. 使用glCreateShader创建顶点/片段着色器对象5. fread读入顶点/片段着色器的源码字符流6. 使用glShaderSource将字符数组绑定到对应的着色器对象上7. glCompileShader编译着色器对象8. glCreateprogram创建着色器程序9. glAttachS
2021-10-25 13:56:32
242
原创 设置vtkActor中心,使其绕Actor中心旋转,并通过鼠标平移
主要代码如下:void vtkAssemblyInteractorStyleActor::OnMouseMove(){ if (!m_bLBtnDown) //没有按下鼠标左键 { vtkInteractorStyleTrackballActor::OnMouseMove(); return; } int X = this->Interactor->GetEventPosition()[0]; int Y =...
2021-07-29 12:07:23
3176
7
原创 举报抄袭!!!
https://blog.csdn.net/it_xiangqiang/article/details/116381440抄袭官方例子https://kitware,github.io/vtk-examples/site/Cxx/GeometricObjects/Circle/希望CSDN官方严厉惩戒。
2021-07-03 15:33:40
238
转载 VTK 模型的旋转与平移
当从外界读入STL等三维模型时,其会按照它内部的坐标位置进行显示。因此它的位置和大小是确定的。但是在实际应用中,有可能需要人为地对这个模型在空间中进行旋转、平移或缩放等操作。VTK中有许多和旋转、平移相关的函数,下面一一进行测试。RotateX、RotateY、RotateZ(绕自身坐标轴旋转) Rotate the Prop3Din degreesabout the X/Y/Z axis using theright hand rule. The axis isthe Prop3D's X...
2021-06-30 16:28:31
5518
2
转载 OpenCV中contourArea轮廓面积算法
for( int i = 0; i < npoints; i++ ) { ////将轮廓点转换为浮点型 Point2f p = is_float ? ptsf[i] : Point2f((float)ptsi[i].x, (float)ptsi[i].y); a00 += (double)prev.x * p.y - (double)prev.y * p.x;//向量叉乘 prev = p; } .
2021-06-21 20:05:01
892
原创 glClearColor和glClear函数区别
OpenGL的glClearColor和glClear改变背景颜色结合以下两个函数void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);和void glClear(GLbitfield mask);前一个函数设置好清除颜色,后者利用前一个函数设置好的当前清除颜色设置窗口颜色...
2021-06-19 16:54:57
609
转载 从QObject派生出自己的类
maim.cpp-------------------------------------------------------------------------------------------------#include <QCoreApplication>#include <QThread>#include <QDebug>#include <QObject>#include <QTimer>#include .
2021-06-09 09:29:20
258
转载 Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。Items能处理键盘事件,鼠标的按,移动、释放、双击事件,也可以跟踪鼠标移动。Graphics View使用BSP树来提供对item的快速查找,使用这种技术,它可以实时地绘制大规模场景,甚至以百万items计。Graphics Vi
2021-03-11 10:59:16
3263
原创 获取DICOM图像的每一个像素,[处理后]写成另外一张DICOM图像
typedef signed short PixelType; const unsigned int Dimension = 2; typedef itk::Image< PixelType, Dimension > ImageType; typedef itk::ImageSeriesReader< ImageType > ReaderType; ReaderType::Pointer reader = ReaderTyp.
2021-03-05 10:32:01
311
1
转载 ITK深拷贝itk::Image
1. 自己实现拷贝数据:template<typename TPixel, uint Dim>void deepCopyItkImageData(const itk::Image<TPixel, Dim>* src, itk::Image<TPixel, Dim>* dst){ if (!src || !dst) { return; } dst->CopyInformation(src); dst->Se...
2021-02-20 11:42:29
582
cmake管理C++项目,基础入门
2024-03-07
vtk画矩形,可以随意拖动和缩放。
2022-07-20
Synology Drive Client-2.0.2-11078.exe
2020-06-10
vtk7.1.1中修改添加类,结合CTK使用ctkVTKVolumePropertyWidget类
2020-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人