ITK编译及安装

news2024/9/29 13:24:52

文章目录

    • 前言
    • CMake配置选项说明
    • 运行VS2015编译及安装
    • VTK转ITK
    • ITK转VTK
    • 参考文献

最近想利用ITK读取整个Dicom图像到内存,再将读取到的ITK数据转换到VTK。于是乎,开始了一段ITK编译之路。以下将记录一些有用的信息,以备后用。

前言

DICOM图像的读取问题
相比于VTK类库中vtkDICOMImageReader类读取DICOM序列图像,借助ITK类库实现对DICOM序列图像的读取要复杂许多。但是,使用ITK类库读取图像不像使用VTK类库那么功能局限,VTK类库对每种图像格式都有着专门的读写类,像vtkDICOMImage-Reader类只能读取普通的DICOM图像,对于压缩后的DICOM图像则只能通过ITK类库来实现读取

CMake配置选项说明

首次配置时间较长,可耐心等待。且第一次Configure后,CMake界面出现一片红,正常现象。
几点重要设置:
● 【must】CMAKE_INSTALL_PREFIX——用于指定存放编译后生成的库文件,此处选新建的Bin文件路径,即D:\Library\ITK5.1.2\Bin。(注意:如果不设置,则默认为C盘路径下的位置,VS安装时需要管理员权限
● 【must】BUILD_SHARED_LIBS——默认是关闭的,意味着ITK是静态编译,只生成lib文件;若选中此项,则动态编译,将会多生成dll文件。
● 【must】VXLUSE_WIN_WCHAR_T——取消复选框“√”。否则报错。(这个我没取消也没有报错)
● 【optional】Module_ITKVtkGlue——如果已经安装了VTK,功能可选。
● 【optional】BUILD_EXAMPLES——默认是关闭的,生成实验用案例,选后,ITK工程变大,编译变慢,存放在Build文件夹中。初学者建议勾选。
● 【optional】BUILD_TESTING——默认是打开的,生成测试的用的EXE,选后,ITK工程变大,编译变慢,存放在Build文件夹中。初学者建议勾选。
● 【optional】BUILD_DOCUMENTATION——默认是关闭的。若选中此选项,则会编译ITK帮助文档。
若在使用ITK过程中需要用到FFTW库时请注意选中选项ITK_USE_FFTWF(支持float型的图像)和ITK_USE_FFTWD(支持double型的图像),并导入对应库所在的位置。
配置完以上选项后,继续点击Configure,直到CMake界面没有红色。可能会需要多次Configure。

运行VS2015编译及安装

在ITK_5.1_build2目录下打开ITK.sln。
在这里插入图片描述在这里插入图片描述

  1. 右击项目”ALL_BUILD”,选择”重新生成”,等待;选择任一项目,右击选择”设为启动项目”,然后就可以进行”调试”或者”开始执行”了
  2. 选择任一项目,右击选择”设为启动项目”,然后就可以进行”调试”或者”开始执行”了(注意,因为没有生成,所以每一项目先自动进行生成)

如果还想把ITK相关的头文件、动态链接库文件等提取处理,以便于其他项目的开发,可以编译Solution下的“INSTALL”工程,右击该工程,在弹出的快捷菜单中选择Project Only->Build Only INSTALL选项,如下图所示。VTK里的所有头文件以及相关的库文件等,都会被提取到CMAKE_INSTALL_PREFIX选项所指定的目录里。默认路径为C:/Program Files/ITK。

VTK转ITK

#include <vtkImageData.h>
#include "itkVTKImageToImageFilter.h"

typedef itk::VTKImageToImageFilter<itk::Image<short, 3>> VTKImageToImageType;
VTKImageToImageType::Pointer vtkImageToImageFilter = VTKImageToImageType::New();
vtkImageToImageFilter->SetInput(pVTKImageData);
vtkImageToImageFilter->Update();
itk::Image<short, 3>::Pointer pITKImageData = vtkImageToImageFilter->GetOutput();

ITK转VTK

#include "itkImageToVTKImageFilter.h"

typedef itk::ImageToVTKImageFilter< Input3dImageType> itkTovtkFilterType;
itkTovtkFilterType::Pointer itkTovtkImageFilter = itkTovtkFilterType::New();
itkTovtkImageFilter->SetInput(pITKImageData );
itkTovtkImageFilter->Update();
vtkSmartPointer<vtkImageData> pVTKImageData = itkTovtkImageFilter->GetOutput();

参考文献

[1] 在win10下的VTK安装 VS2017+VTK+ITK+camke+QT的逐步安装(保姆级教程,逐步教程)
[2] win 10系统下 CMake编译Visual Studio 2017 C++ 匹配的ITK5.1.2过程实录。
[3] VS2015配置ITK环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1407553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring扩展点在微服务应用(待完善)

ApplicationListener扩展 nacos注册服务&#xff0c; 监听容器发布事件 # 容器发布事件 AbstractAutoServiceRegistration#onApplicationEvent # 接收事件吗&#xff0c;注册服务到nacos NacosServiceRegistry#register Lifecycle扩展 #订阅服务实例更改的事件 NamingService#…

超实用桌面助手!时间、日期、天气,一目了然!完全免费!

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f3e1; 环境 &#x1f3e1;&#x1f4d2; 使用方法 &#x1f4d2;⚓️ 相关链接 ⚓️ &#x1f4d6; 介绍 &#x1f4d6; 这是一款我根据自己的需求写的一个桌面小工具&#xff0c;自己一直在用&#xff0c;现在分享给需要的朋…

RabbitMQ发布确认

生产者将信道设置成 confirm 模式&#xff0c;一旦信道进入 confirm 模式&#xff0c; 所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始)&#xff0c;一旦消息被投递到所有匹配的队列之后&#xff0c; broker就会发送一个确认给生产者(包含消息的唯一 ID)&…

【每日一题】最长交替子数组

文章目录 Tag题目来源解题思路方法一&#xff1a;双层循环方法二&#xff1a;单层循环 写在最后 Tag 【双层循环】【单层循环】【数组】【2024-01-23】 题目来源 2765. 最长交替子数组 解题思路 两个方法&#xff0c;一个是双层循环&#xff0c;一个是单层循环。 方法一&am…

Likeshop单商户SaaS商城源码系统-商家用过都说太香啦!

在互联网快速发展的时代&#xff0c;拥有一个个性化、功能丰富的在线商城是企业拓展市场、提高用户粘性的重要手段。 我是一名电商从业者&#xff0c;同时也是一个热衷于DIY的人&#xff0c;我总喜欢在自己的店铺中加入自己的一些想法和创意。然而&#xff0c;一般的电商平台无…

【思路合集】talking head generation+stable diffusion

1 以DiffusionVideoEditing为baseline&#xff1a; 改进方向 针对于自回归训练方式可能导致的漂移问题&#xff1a; 训练时&#xff0c;在前一帧上引入小量的面部扭曲&#xff0c;模拟在生成过程中自然发生的扭曲。促使模型查看身份帧以进行修正。在像VoxCeleb或LRS这样的具…

EasyX的安装与使用(VisualStudio C++免费绘图库)

EasyX Graphics Library 是针对 Visual C 的免费绘图库 安装教程 安装到Visual C 2010 EasyX 安装完毕。 在VC2010中建立控制台工程 工程建好后&#xff0c;鼠标右键点击工程名&#xff0c;并选择属性 安装到Visual C 2010 EasyX 安装完毕。 安装示例程序 easyxdemo.cpp 在VC…

Vulnhub-dc4

靶场下载 https://download.vulnhub.com/dc/DC-4.zip 信息收集 判断目标靶机的存活地址: # nmap -sT --min-rate 10000 -p- 192.168.1.91 -oN port.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-21 16:36 CST Stats: 0:00:03 elapsed; 0 hosts completed (1 up…

机器学习 | 掌握Matplotlib的可视化图表操作

Matplotlib是python的一个数据可视化库&#xff0c;用于创建静态、动态和交互式图表。它可以制作多种类型的图表&#xff0c;如折线图、散点图、柱状图、饼图、直方图、3D 图形等。以渐进、交互式方式实现数据可视化。当然博主也不能面面俱到的讲解到所有内容&#xff0c;详情请…

装完32G内存条 电脑飞跃提升!

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 大家…

如何使用阿里云CDN服务?

如何使用阿里云CDN服务 一、开通阿里云CDN服务 注册自己阿里云账号&#xff0c;找到CDN服务&#xff0c;进行加速即可 二、配置域名信息 1、各配置参数的含义 添加加速域名&#xff1a; 如果需要使用CDN加速指定网站上的业务&#xff0c;则需要将该网站作为源站&#xff0…

ubuntu 20.04 使用 webrtc-streamer自动退出,报错GLIBC 问题解决方法

文章目录 前言Ubuntu 20.4中使用webrtc-streamer报错总结 前言 前端vue2 项目需要播放海康的视频流&#xff0c;本地启动起来了&#xff0c;现在需要的服务器上部署&#xff0c;服务器是Ubuntu 20.04&#xff0c;下面是部署时遇到的问题及解决方法&#xff0c;总耗时2天。 不知…

<蓝桥杯软件赛>零基础备赛20周--第16周--GCD和LCM

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周。 在QQ群上交流答疑&am…

dolphinscheduler节点二次开发需要改动的部分

dolphinscheduler节点二次开发需要改动的部分 前端 在dolphinscheduler-ui/public/images/task-icons/目录下新增两个节点的logo图片&#xff0c;一个为激活状态的一个为非激活状态的&#xff0c;如下。 修改文件dolphinscheduler-ui/src/views/projects/task/constants/task…

git bash右键菜单失效解决方法

git bash右键菜单失效解决方法 这几天重新更新了git&#xff0c;直接安装新版本后&#xff0c;右键菜单失效找不到了。找了好几个博客&#xff0c;发现都不全面&#xff0c;最后总结一下解决方法&#xff1a; &#xff08;1&#xff09;按winr&#xff0c;输入regedit打开注册…

【学网攻】 第(3)节 -- 交换机配置聚合端口

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用 前言 网络已经成为了我们生活中不可或缺的一部分&#xff0c;它连接了世界各地的人们&#xff0c;让信息和资源得以自由流动。随着互联网的发展&#xff0c;我们可以通过网络学习、工作、娱乐…

idea创建公用依赖包项目

创建parent项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

C++读取txt文件中的逐个字符

为了增加读取的灵活性&#xff0c;所以separator和filename都设置为在主函数中获取输入或者在函数中传参的视线方法 举个例子&#xff0c;txt文件如下&#xff1a; household;2;true; 首先声明一个读取数据的文件 void read_data_file(const string& filename,char se…

使用Fiddler进行弱网测试

测试APP、web经常需要用到弱网测试&#xff0c;也就是在信号差、网络慢的情况下进行测试。我们自己平常在使用手机APP时&#xff0c;在地铁、电梯、车库等场景经常会遇到会话中断、超时等情况&#xff0c;这种就属于弱网。 普通的弱网测试可以选择第三方工具对带宽、丢包、延时…

代码随想录算法训练营第29天(回溯算法05 | * 491.递增子序列 * 46.全排列 * 47.全排列 II

回溯算法part05 491.递增子序列解题思路与 90.子集II 不同的点回溯三部曲 46.全排列解题思路遇到的难点思考 47.全排列 II解题思路注意点拓展需要加深理解的点&#xff08;需复习 小总结 491.递增子序列 本题和大家刚做过的90.子集II非常像&#xff0c;但又很不一样&#xff0c…