- 博客(69)
- 资源 (4)
- 收藏
- 关注
原创 005:VTK世界坐标系中的相机和物体
VTK中vtkCamera类对应右图中的相机,可以通过vtkCamera来设置相机在世界坐标系中的位置,焦点(对准三维坐标系中的那个位置),相机的正方向,相机的最近和最远裁减平面(在最近和最远平面内的物体才会被渲染)等;三维坐标系中的物体,对于目前我们的例子来说就是要渲染显示的DICOM图像,也就是存储在vtkImageData中的数据,通过vtkImageData origin参数可以设置其在三维坐标系中的位置,当然也可以通过旋转矩阵对vtkImageData的数据进行旋转或平移。
2024-09-06 23:16:19 891
原创 004: VTK读入数据---vtkImageData详细说明
对于医学图像来说,vtkImageData是使用频率非常高的类,因为医学图像通常为较为规则的矩形或容积类型(三维),而vtkImageData类主要就是用于存储此类数据的,vtk中相关算法(比如阈值、缩放等)的输入和输出也是vtkImageData类,熟练掌握vtkImageData类非常重要。
2024-09-06 11:37:54 1211
原创 003: Visual Studio 配置 VTK 开发环境的方法与比较
介绍了两种再项目中配置VTK的方法,其实严格来说就是一种方法,不过相比较而言,第二种方法导出props文件后,后面所有要使用VTK的项目,直接通过属性框导入props文件即可,不用在去费劲添加路径和lib文件,想比较而言,更加的方便快捷。
2024-09-05 15:45:43 1090
原创 002:显示DICOM图像(替换掉 vtkImageViewer2 )
在第000章节VTK的安装中,我们运行了第一个例子,来显示DICOM图像,从而让我们可以快速的看到输入、输出和交互,建立学习兴趣,在该例子中使用vtkImageViewer2来显示DICOM图像,在实际开发中我们基本不会用vtkImageViewer2,因为该类对很多内容进行了封装,使用起来不够灵活,同时也使得我们无法深入理解如何来显示一张DICOM 图像,从这一章开始,我们将完整的熟悉VTK的渲染管线。
2024-09-04 22:10:02 1061
原创 001:VTK的学习资料与方法
本节主要介绍学习VTK的一些资料和学习方法,仅供参考,可以根据自己的实际情况来调整。学习资料主要以VTK官网提供的资料为主,不管对于入门还是深入研究都足够了;
2024-09-04 11:05:17 1063
原创 000:VTK的安装(VTK 编译 + 运行第一个例子)
VTK-医学图像处理,主要基于VTK来显示医学图像,并进行必要的处理。在显示医学图像的过程中讲解背后的计算机图形学知识,理解VTK背后的行为基础。本节为该系列文章的第一节,主要是VTK的编译和配置。
2024-09-03 22:16:34 1430
原创 VTK: 转化DICOM ST 数据为vtkPolyData显示
放疗的靶区等勾画数据通常会存储为DICOM-RT文件,该文件通常存储勾画点坐标数据。新的需要中DICOM-RT中存储了一个固定模版,需要进行3D打印,因此需要对其格式进行转化,以便进行三维渲染、编辑、保存和打印功能。
2022-09-26 11:41:17 1360 1
原创 003:D2D 性能测试-绘制不同对象的帧率变化
D2D性能测试,目的是了解D2D特性,为后续系统设计确定技术路线。主要对D2D绘制不同对方的速度进行测试,测试的对象包括:图像、文本、椭圆和矩形,测试绘制不同对象对帧率的影响。测试结果表明:以帧率下降速度最快排列,绘制文本帧率下降最快,其次是椭圆、矩形,影响最小的是图像。
2022-09-15 12:18:30 733
原创 002:CWnd类中采用D2D绘制,并测试帧率
在001中,D2D绘制的代码直接放在了对话框类中,实际使用过程中,通常是继承CWnd来实现显示窗口,因此本例子实现在CWnd子类中采用D2D进行绘制,并测试FPS,后续会与GDI和GDI+的绘制帧率进行对比。
2022-09-08 23:22:00 710 5
原创 001:你好Direct 2D! 在对话框中初次使用D2D
对于如何提高2D的绘制效率,一直在进行着尝试。基于OpenGL的纹理贴出做过一些二维图像处理的工作,但相对麻烦些,需要由GDI/GDI+绘制后,在贴出去,麻烦,且由于OpenGL停止了更新,不支持多线程等原因,慢慢的继续做下去的动力就不足。无意间看到MSDN中关于Direct 2D的结论(现有GDI代码将继续在 Windows 7 下正常工作。 但是,编写新的图形呈现代码时,应考虑Direct2D,因为它更好地利用新式 GPU。),故而打算写一序列的博客,记录下学习和测试Direct2D编程和性
2022-09-08 16:26:43 710
原创 微血管血流速度标注
舌下与结膜微血管血流速度检测是药物反应和疾病诊断的重要指证,但由于红细胞族之间的间隔随着血流的流动会发生聚合或分离,导致在序列时空图象上血流速度检测的困难,拟采用深度学习方法,在序列时空图象上准确检测微血管血流速度。由于现有的软件进行标注不方便、效率低,所以自己开发了个小的标注软件。采用C#编写。......
2022-07-06 15:33:20 226
原创 从源码 编译 Conquest DICOM software 1.5.0b,并汉化
Conquest DICOM Server是开源的服务端程序,可用于DICOM通讯的验证和作为自用的图像归档系统,来收集和存储数据。其界面用delphi开发,调用C++开发的DICOM解析库和服务进程来实现其功能。
2022-06-29 11:58:47 814
原创 VTK:去除阈值分割中的小的连通区域-噪点去除
目的:阈值分割的结果中,通常包含有很多小的、孤立的区域,这些小的区域采用手动方式去除比较耗时,可通过三维连通区域,计算各个连通区域的大小,然后将小于一定阈值的区域去掉。基于vtkImageConnectivityFilter类实现。性能:512*512*400的数据,连通域计算无法达到实时; 512*512*400的数据中的肺动脉,经过三维裁剪,可以达到实时的效果。若果要提高到2S内,需要改进vtkImageConnectivityFilter中的算法。...
2022-03-18 16:56:01 1501 1
原创 VTK三维裁剪:体绘制任意裁剪 和面绘制任意裁剪(对vtkImageData和vtkPolyData进行裁剪)
在体绘制和面绘制中,经常需要对非感兴趣部位进行裁减,以减少遮挡等。目前实现了两种方法:第一种方法速度比较慢;第二种方法可以达到实时;详细见参考文献。详细内容后面整理,先记录下。一、体绘制裁减二、面绘制进行裁减参考:https://blog.csdn.net/a15005784320/article/details/119204925 https://blog.csdn.net/gorecording/article/details/83781923htt...
2022-02-13 11:11:31 3945 3
原创 VTK: 选取区域裁剪(vtkAreaPicker + vtkInteractorStyleRubberBandPick )
简介:1、vtkAreaPicker:获取裁剪平面2、vtkClipClosedSurface:完成裁剪完成代码:#include <vtkActor.h>#include <vtkAreaPicker.h>#include <vtkDataSetMapper.h>#include <vtkDataSetSurfaceFilter.h>#include <vtkExtractPolyDataGeometry.h>.
2022-01-22 12:10:53 2589 2
原创 VTK: 选取区域(vtkAreaPicker + vtkInteractorStyleRubberBandPick )
目的:显示对直接体绘制和网格数据的任意裁剪。根据VTK官网的例子,显示了下面的矩形区域选取。下一步实现任意区域的选取与裁剪。VTK官网例子:https://kitware.github.io/vtk-examples/site/Cxx/Picking/HighlightSelection/注意:按下键盘< r >进行模式切换,#include <vtkActor.h>#include <vtkAreaPicker.h>#include &l.
2022-01-22 10:48:29 3327 3
原创 VTK: vtkImageData 转 vtkPolyData
简介:勾画的数据通常带有多个标签(多个组织),以vtkImageData存储,用vtkDiscreteMarchingCubes 可以将其转化为网格数据vtkPolyData。下图为转化的效果。详见代码,内有注释 vtkImageData* pMaskData = m_pMaskImage->GetSrcMaskData(mLabel); double origin[3]; pMaskData->GetOrigin(origin); pMaskData..
2022-01-21 21:56:55 2119
原创 VTK: vtkPolyData 裁剪(1)
熟悉vtkClipClosedSurface 对vtkPolyData 进行裁剪;重点在于如何构建裁剪平面,需要注意的是裁剪平面的法向量指向的会被保留,其它会被裁剪掉。难点就是如何构建重建平面组合;
2022-01-20 10:56:19 1839
原创 VTK: STL (vtkPolyData) 转 Mask(vtkImageData)
项目中需要将分割结果的STL转换成Mask,以方便用户对其进行必要的调整。vtkPolyData 转vtkImageData 的方法见VTK官网中有相关的例子。需要注意的几点:1、转换后结果的数据类型和参考数据相同,如下代码中的maskImage;2、 vtkPolyData 的数据原点(mask转polydata时)与maskImage必须相同;void Stl2Mask(){ double spacing[3] = {0.71875,0.71875,1.0}; do..
2022-01-16 15:41:11 1543
原创 VTK 灰度图像转RGB(非渲染):vtkWindowLevelLookupTable/vtkLookupTable/vtkImageMapToWindowLevelColors
简介:系统中提取读取序列图像中的一张,用VTK将灰度图像转换为GRB,然后用GDI+绘图。懒得直接做颜色查找表,直接用VTK中的vtkWindowLevelLookupTable/vtkLookupTable/vtkImageMapToWindowLevelColors,可完成灰度到RGB的转换。保存为RGB的文件如上图,代码如下:void Gray2ColorImg(){ m_Origin[0] = -m_Dim[0] * m_Spacing[0] * 0.5; m_Origin[..
2021-12-26 16:54:32 1220
原创 VTK生成直方图:vtkImageHistogram
简介:统计三维数据的直方图,用于作为阈值分割或直接体绘制的背景,指示用户进行调节。对于灰度图像,使用vtkImageHistogram就够了。SetHistogramImageScaleToLog() 结果SetHistogramImageScaleToLinear(); 结果SetHistogramImageScaleToSqrt() 结果代码:void ImageHistogram(){ m_Origin[0] = -m_Dim[0] * m_S...
2021-12-26 16:10:02 940
原创 VTK 项目一:MPR和STL+感兴趣勾画
简介:用MFC做的简单的MPR实现和STL三维显示,MPR用vtkImageActor实现,特点就是简单,后续增加STL转掩码体数据,并实现编辑。后面慢慢贴出代码。
2021-11-24 11:15:06 1336
原创 (二) ICP配准方法存在的问题
简介:加深对ICP配准方法存在问题的理解。通过改变初始位置,直观的感受ICP算法对点云初始位置的依懒性;另外观察存在较多冗余信息是ICP配准的精度。存在问题:1、容易陷入局部最优解,可通过改变点云初始位置进行改善。图1 初始位置差异较大时,ICP的配准结果图2 改变初始位置后,ICP的配准结果2、存在较多冗余信息时,IPC配准精度不高整个牙冠在高度上扔没对齐,切牙区最为明显...
2021-09-06 11:21:50 2753 4
原创 (一)PCL库 ICP配准
简介:通过ICP配准,对齐CBCT提取牙齿与口内扫描获取牙冠,结果失败。原因:可能是因为两者重叠点云数据少,而不重叠部分过多,待后续分析。1、CBCT提取牙齿 与口内扫描获取数据在同坐标系下显示2、PCL库调用ICP进行配准void registCTInteroral(){ char strST[256] = "E:\\CBCT\\lower.ply"; char strCT[256] = "E:\\CBCT\\lower-CT.ply"; pcl::Po.
2021-08-31 09:21:16 1170
原创 (一) 分割得到的掩码数据转换为点云数据
简介:对分割得到的牙齿掩码数据进行转换,转换采用VTK 实现,将掩码转换为PCL可以读取的PLY格式,以进行后续处理。1、掩码数据:采用深度学习方法对CBCT中的牙齿进行提取,结果保存为分析格式(hdr,img);2、将下颌中的牙齿掩码数据,转换为点云的PLY格式,采用VTK读取数据,并根据下颌牙齿掩码值进行提取,然后用vtkMarchingCubes提取表面,并保存为PLY格式; vtkMarchingCubes* marchingCubes = vtkMarchingCubes::N.
2021-08-30 22:13:48 1090 2
原创 (一)VTK 转换 STL 为 PLY 格式,PCL读取PLY格式
简介:由于PLY1.12版本IO模块提供了PCD和PLY两种格式的读取接口,因此需要用VTK进行格式转换,完成STL到PLY格式的转换,或掩码图像到PLY格式的转换,然后用PCL进行读取并进行处理。1、VTK 将STL转换为 PLY格式void stl2ply(){ std::string filename = "P:\\CBCT\\tooth\\upper.stl"; vtkSmartPointer<vtkSTLReader> reader = vtkSmartPoint
2021-08-30 17:58:42 2594 2
转载 (一)PLY 文件格式
PLY FormatPLY or Stanford Polygon format defines a flexible and systematic scheme for storing graphical objects that are described as a collection of polygons. A ".PLY" file is composed of 3 main mandatory sections plus optional ones thereafter. The firs
2021-08-30 15:29:29 859
原创 (一)PCL 1.12 + VS2019 环境配置
最近开始做口腔点云数据处理相关的工作,需要把CBCT数据中的结构转换为点云,因此选择了PCL,PCL在windows下环境的配置已经很简单了,直接安装配置即可使用,这里只对安装过程中遇到的问题和小技巧记录下来。 1、PCL1.12的安装过程可参考链接:(55条消息) PCL安装与配置(Windows10+VS2017 )_syz201558503103的博客-CSDN博客_pcl启动器。 2、安装完成后,需要去安装目录的 <PCL 1.12.0\3rdPart...
2021-08-28 11:01:20 1919 4
原创 原始数据到CT值的转换
用从DICOM文件中读取的rescaleslope值和rescale intercept值可以将每个像素的灰度值转换成CT值。Hu=pixel_val*rescale_slope+rescale_intercept;pixel_val是第i个像素的灰度值Hu是第i个像素的CT值CT 图象的CT 值反映组织对X 射线吸收值(衰减系数u),其单位为H
2017-03-15 09:57:05 12827 5
原创 RTK-fast circular cone-beam CT reconstruction 在Windows 系统下的编译
FFTW3.3.5 在Windows 下的安装1.下载FFTW,官网地址:http://www.fftw.org/;在Download页面,选择:Go here for Windows.分别下载32和64版本。2.生成lib文件,
2017-03-12 17:24:36 2861 4
转载 DCMTK 时间段查询
StudyDate[16]; // (0008,0020)DA 检查日期 字串 格式:YYYYMMDD 示例:20140506Dates and times use Range Matching, so for all dates after and including 2000-01-01 the syntax is "2
2016-06-18 10:16:09 881
原创 封装OpenGL渲染为DLL,C#做UI显示
C# 环境下OpenGL的渲染,有很多的开源库,如:The Tao Framework+.net、SharpGL、opengl4csharp、OpenGL.Net、CSharpGL等等,大体都是将OpenGL的API函数以DLL的方式引入,在进行封装,使得上手很快,对于普通的渲染来说,足够了,但对于像体渲染这样比较耗时的渲染来讲,我更喜欢直接将渲染部分封装到C/C++的DLL中,C#只负责显示;
2016-04-01 10:57:07 3139 5
原创 基于DCMTK和OpenCV的DR图像拼接
DR 图像拼接 基于DCMTK和OpenCV做的一个医学图像拼接模块,记录下:详细拼接流程后续补上。下肢:图像张数:4; 图像大小:1984*2492; 数据位数:16bit;平均拼接速度4秒左右(初略统计)拼接结果DICOM文件用三方软件(RadiAnt DICOM Viewer)打开躯干部位:
2016-04-01 10:27:23 4176 4
基于VTK实现的放大镜(局部放大)功能,所有类都基于VTK进行封装和继承,很容易整合到自己的项目之中 资源包含所有源代码
2024-09-05
OpenGL Programming Guide-V4.3
2013-09-23
DICOM文件JPEG2000 解压缩与序列分类
2012-07-14
hl7 schema
2011-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人