- 博客(971)
- 资源 (12)
- 收藏
- 关注
原创 VTK着色器Spatter Shader代码学习(5)
模型处理自动识别多种3D文件格式自动归一化模型大小(缩放到[-1,1]范围)三角化处理确保几何一致性法线计算支持正确光照着色器替换在顶点着色器中添加模型坐标输出在片段着色器中引入外部噪声函数替换光照计算实现自定义效果参数传递使用回调函数动态更新着色器参数支持命令行参数配置效果多尺度噪声检测实现自然喷溅效果渲染优化使用OpenGL加速渲染自动相机位置调整交互式查看支持。
2025-07-04 15:18:59
14
原创 VTK着色器MarbleShader代码学习(4)
代码链接这段代码是一个使用 VTK(Visualization Toolkit)实现的复杂着色器渲染示例,主要用于在 3D 模型上模拟大理石纹理效果。
2025-07-03 18:06:21
24
原创 VTK中自定义双组分输入最大值滤波
这段代码实现了一个中的图像处理过滤器,主要用于在,并基于参考图像进行条件滤波。KernelSizeKernelSize[1, 1, 1]0.5ZThreshold0.5workArrayworkArrayinInc0/1/2ZThreshold此代码适合,但可进一步优化计算效率(如替换)和扩展功能(如支持任意分位数)。
2025-07-03 11:41:40
154
原创 VTK中的形态学处理
这段代码展示了使用VTK进行医学图像处理的两个关键步骤:阈值分割和形态学开闭运算。下面我将详细解析每个部分的功能和实现原理。处理前处理后。
2025-06-26 11:34:40
199
原创 VTK自定义滤波去噪——位次滤波
这段代码展示了VTK中高效图像处理算法的典型实现方式,结合了C++标准库算法和VTK框架特性,既保证了性能又提供了足够的灵活性。位次滤波是基于中值滤波进行修改,可自定义位置进行返回。
2025-06-26 10:22:04
211
原创 vtkImageData体数据去噪——vtkImageMedian3D
使用 VTK 9.0 版本对 vtkImageData 数据使用 vtkImageMedian3D 进行去噪的简单 C++ 示例。这个例子将创建一个简单的 3D 图像,添加一些噪声,然后应用中值滤波器去除噪声。
2025-06-23 16:05:49
147
原创 vtkImageData数据类型的获取
在VTK(Visualization Toolkit)中,方法,可以返回数据的类型。通过检查返回的类型(例如。如果你有任何进一步的问题,欢迎随时问我!对象中的数据类型是整型还是浮点型,可以通过获取其。是一个用于表示图像数据的类。),我们可以确定数据是整型还是浮点型。以下是一个示例代码,展示了如何获取。在这个示例中,我们首先获取。),然后获取其中的标量数据(希望这能帮到你理解如何获取。对象并检查其数据类型。
2025-06-23 11:18:52
31
原创 vtkImageData数据读写
这个示例完整演示了VTK图像数据的IO流程,特别适合处理多分量医学图像或科学计算数据。以下是一个完整的C++示例,展示如何使用VTK将。
2025-06-20 15:37:34
38
原创 在VTK中捕捉体绘制图像并实时图像处理
这段代码实现了一个高级的医学图像可视化系统,主要特点包括双窗口交互式体绘制、图像后处理和实时同步。创新点:注释掉了父类方法调用(),确保副窗口自身不响应交互实时性优化:每次事件后主动调用确保即时更新2.2 图像处理流水线 ()图像后处理:使用实现专业级的抗锯齿效果视图适配:精确计算缩放比例和平行投影参数,确保2D视图完美匹配原始窗口2.3 体绘制配置医学可视化最佳实践:通过精心设计的传输函数突出显示不同组织渲染质量:启用阴影和线性插值提升视觉效果3. 工作流程详解数据
2025-06-20 14:49:13
454
原创 在VTK中捕捉体绘制图像进阶(同步操作)
这种设计适用于需要同时查看3D渲染和静态2D截图的医学图像应用场景,副窗口可以作为参考视图,而所有交互操作都在主3D视图中生效。
2025-06-20 10:04:26
236
原创 VTK体数据中RGBA切片保存流程
要从体绘制后的结果中获取彩色切片,您可以使用 VTK 提供的过滤器将体数据映射到颜色空间,然后提取所需的切片并保存为图像文件(例如 PNG)。
2025-06-18 19:38:44
283
原创 VTK着色器ColorByNormal代码学习(2)
如果需要进一步优化(如添加 GUI 控件或扩展着色器),可以讨论具体需求!,通过修改默认的 GLSL 着色器实现颜色与法向量的绑定。的 C++ 程序,主要功能是。
2025-06-16 15:14:05
24
原创 VTK中的插值方式
方法决定了如何在这些定义的点之间进行插值。在 VTK(Visualization Toolkit)中,用于定义标量值到颜色的映射,而。如果需要进一步调试,可以通过。添加颜色条直观验证映射效果。
2025-06-13 10:05:48
36
原创 VTK之多组数据抽取
数据范围:提取后的数据可能需要重新计算标量范围,可使用twoComponentData->GetPointData()->GetScalars()->Modified()触发重新计算。性能考虑:对于大型数据集,方法一(使用vtkImageExtractComponents)通常更高效。数据类型一致性:确保输入数据的类型与处理方法匹配,上述示例假设数据为float类型。内存管理:使用vtkSmartPointer自动管理内存,避免内存泄漏。组件顺序:VTK中组件索引从0开始,所以前两个组分的索引是0和1。
2025-06-10 14:39:48
38
原创 华为昇腾开发——多模型资源管理(C++)
在使用Ascend ACL(Ascend Computing Language)的ACLLite库进行多模型推理时,合理的资源管理至关重要。
2025-05-22 13:52:53
368
原创 Easylogging使用笔记
这些是 Easylogging++ 的基本用法。该库还提供了许多高级功能,如条件日志、自定义格式化、性能跟踪等。你可以查阅 Easylogging++ 的官方文档以获取更详细的信息和高级用法。Easylogging++ 是一个功能强大的 C++ 日志库。Easylogging++ 默认是线程安全的。你可以通过配置文件或代码来配置 Easylogging++。记住,在使用 Easylogging++ 时,你需要在项目中包含。这个宏必须在全局范围内使用,且只能使用一次。
2025-05-20 17:14:42
306
原创 VTK中的双标量组件的体绘制
在 C++ 中使用 VTK 实现双标量组件体绘制的关键在于使用和分别控制颜色和不透明度,同时通过渲染体数据。你可以根据自己的需求调整颜色映射和不透明度映射的定义,以达到所需的可视化效果。
2025-05-09 13:59:04
80
原创 体绘制中的传输函数(transfer func)介绍
VTK中的梯度不透明度传输函数(Gradient Opacity Transfer Function)是体积渲染中的一个高级特性,它基于体积数据的局部梯度来调整不透明度。颜色传输函数是体积渲染中的一个强大工具,它能够显著增强数据的可视化效果和可解释性。VTK中的颜色传输函数(Color Transfer Function)是体积渲染中另一个关键组件,它定义了如何将体积数据中的标量值映射到颜色。不透明度传输函数是体积渲染中的一个强大工具,合理设置可以大大提高可视化的质量和信息传达的效果。
2025-05-08 17:35:35
247
原创 在VTK中使用VTKCamera
在VTK(Visualization Toolkit)中,vtkCamera 类用于控制三维场景中相机的视角。相机决定了你从哪个角度和位置观察三维场景。使用 vtkCamera 的一般步骤包括创建相机对象、配置相机参数、将相机设置为渲染器的活动相机,以及更新相机视图。
2025-04-30 15:49:01
437
原创 在VTK中使用巴特沃斯低通滤波器(频域处理)
没有脉冲响应:与其他类型的滤波器(如理想滤波器)不同,巴特沃斯滤波器的频率响应在截止频率附近呈平滑过渡,而非突变。图像的频域信息包括低频成分(图像的平滑区域)和高频成分(图像的细节和噪声)。阶数的影响:巴特沃斯滤波器的阶数(order)决定了滤波器在截止频率处的过渡斜率。反傅里叶变换:使用反向傅里叶变换(Inverse FFT)将处理后的频域图像转换回时域,从而得到去噪后的图像。应用巴特沃斯低通滤波器:将巴特沃斯低通滤波器应用到图像的频域表示,设置一个适当的截止频率。巴特沃斯滤波器的传递函数。
2025-04-29 14:19:40
360
原创 在VTK中使用vtkImageAccumulate进行直方图统计
vtkImageAccumulate 是 VTK 中一个用于对图像数据进行累积的滤波器。它的功能是对输入的图像进行“累积”,即统计图像像素值的分布。这对于图像的直方图计算非常有用,它可以生成一个输入图像的直方图或累积直方图。在 vtkImageAccumulate 中,输出的是一个包含输入图像的累积信息的图像数据。可以通过这个输出获得有关图像的统计信息,比如每个灰度值的像素数量等。
2025-04-29 10:31:30
240
原创 对VTK中的Volume Data体数据进行二维图像处理
在进行二维图像处理时,通常从三维数据中提取出单个切片(沿某个方向的切片)。这可以使用 vtkImageReslice 完成,vtkImageReslice 可以帮助从三维数据中生成二维切片。一旦您提取了二维切片,就可以对其进行各种图像处理操作,如平滑、滤波、阈值化、边缘检测等。在 VTK 中对体数据进行二维图像处理的过程通常涉及从三维体数据中提取二维切片,并对这些切片进行处理。然后,可以选择性地将处理后的切片数据重新合并成新的体数据。处理过的二维切片可以重新组合为新的三维体数据。对二维切片进行图像处理。
2025-04-28 17:24:35
531
原创 基于VTK的光线投影法体绘制
光线投射法是最常用的体绘制方法。它是一种基于图像序列的直接体绘制方法,其基本原理是从投影图像平面(通常为平面)的每个像素沿着视线方向发射一条穿过体数据的射线然后在射线上按照一定的步长进行等距采样,对每个采样点采用插值技术来计算其体素值,根据颜色传输函数和不透明度传输函数来获取相应的颜色值和不透明度,最后利用光线吸收模型将颜色值进行累加直至光线穿过体数据,即可得到当前平面像素的渲染颜色,生成最终的显示图像。与面绘制不同,体绘制技术不需要提取体数据内部的等值面,它是一个对三维体数据进行采样和合成的过程。
2025-04-23 13:57:21
438
原创 在windows上运行VTK测试代码
VTK(Visualization Toolkit)是一个开源软件系统,用于3D计算机图形、图像处理和可视化。它由Kitware公司开发,广泛应用于科学计算、工程、医学成像以及其他领域的数据可视化。VTK支持多种数据格式并提供丰富的工具集来处理和可视化复杂的数据集。下面我将在windows上的vs2019上实现一个简单的VTK 测试demo。vs2019->新建项目->空项目。
2025-04-21 14:07:15
414
原创 基于直方图均衡的图像增强(uint16_t)
在 OpenCV 中,对于 uint16_t 类型的灰度图像,默认的 equalizeHist() 函数只支持 CV_8U 类型的灰度图像。为了对 uint16_t 类型的灰度图像(即深度为 16 位的图像)进行直方图均衡化,我们需要手动实现一个直方图均衡化的过程,并适应 uint16_t 图像的灰度范围(0-65535)。
2025-04-18 10:42:27
65
原创 安检数据集汇总
https://github.com/NeelBhowmik/xray?tab=readme-ov-file
2025-04-17 16:37:36
46
原创 麒麟服务器上的VTK部署
Q1:当你在没有图形界面的麒麟 Server 系统上运行 VTK 代码时,出现 bad X server connection. DISPLAY=local:0.0. Aborting. 错误,这通常是因为 VTK 默认尝试连接到 X 服务器进行图形显示,但服务器系统没有可用的 X 服务器。A1:Xvfb(X Virtual Frame Buffer)是一个虚拟的 X 服务器,它可以在没有实际显示设备的情况下模拟 X 服务器的功能。这样,VTK 就可以在虚拟的 X 服务器上进行渲染,而不会出现连接错误。
2025-04-07 13:04:52
357
原创 基于昇腾NPU的YOLOv8部署
由于模型检测结果是用内存连续的一维数组进行表示的,因此,需要根据yolov8输出尺寸的实际含义,来访问需要的数组内存地址来获取需要的值。根据资料显示,yolov8模型不另外对置信度进行预测, 而是采用类别里面最大的概率作为置信度的值,8400是yolov8模型各尺度输出特征图叠加之后的结果,一般推理不需要处理。即可,参考onnx输出尺寸[1,84,8400]中的84-4 = 80 , 比如自定义的模型输出为[1,26,8400],则 size_t classNum = 22 (26-4).
2025-04-02 19:51:50
945
原创 使用RKNN进行yolo11-cls部署
实现方式:通常对 YOLO 系列的骨干网络(Backbone)进行微调,去除原模型中用于检测边界框的头部(Head)部分,添加适用于分类任务的全连接层或全局平均池化层等,将输出调整为对应分类类别的概率分布。例如,在 YOLOv8 中就包含了分类模型,它基于其强大的骨干网络,通过简单的结构调整,能够高效地完成图像分类任务。YOLO(You Only Look Once)是一系列高效的目标检测算法,其核心思想是将目标检测任务转化为一个回归问题,通过单个神经网络直接在图像上预测边界框和类别概率。
2025-04-01 23:25:34
363
2
原创 提高YOLO对小目标检测的精度
然而,由于添加了额外的特征尺度,p2 模型需要额外的成本。尽管减少了 box 和 dfl 损失权重,但使用关键点目标后,box mAP50 仍然增加了 12% 以上,从之前训练中的 44.8 增加到使用基于姿势的模型的 50.6。在这里,我们将姿势模型的权重加载到检测模型中,它们完美匹配,因为直到姿势头的所有层都是相同的,我们将新模型保存为best_detect.pt。您可以看到所有指标几乎相同,事实上,这里的指标略高一些,FLOPs 计数显示为 8.1,这与我们在原始检测模型中所得到的相同。
2025-03-25 14:39:59
202
原创 在YOLO中扩充新类别并且不影响旧类的识别精度
让我们先从简单的部分开始:用我们的新类训练自定义 YOLOv8 模型。在本教程中,我们将向模型添加车牌类。我们将使用Roboflow 中的一个数据集。这个数据集有两个车牌类。在开始训练之前,我们还必须对库进行一些更改。为了节省时间,我还将本教程中我们将进行的更改转换为补丁该补丁包含多项更改,但大多数更改都用于指南的下一部分。if RANK!= -1:是的,我们将编写一个回调。我们希望将此自定义训练模型的头部与 COCO 预训练模型中的旧头部一起使用。
2025-03-25 10:59:14
512
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人