3D医学影像开发入门<四>:VS2019 + Qt5.15.2 + MITK-v2021.10编译及环境配置

1、MITK介绍

1.1 MITK概述

  MITK 是一个开源框架,最初是作为德国癌症研究中心医学和生物信息学部 (MBI) 博士生的通用框架开发的。MITK 旨在支持开发具有高度交互性的领先医学成像软件。

  MITK 几乎重复使用了 VTK 和 ITK 中的任何内容。因此,它根本不是 VTK 或 ITK 的竞争对手,而是一个扩展,它试图简化两者的结合,并添加 VTK 或 ITK 不支持的功能。由于类似 BSD 的软件许可证,研究机构、医疗专业人员和公司都可以使用 MITK 作为其研究的基本框架,甚至商业(需要彻底的代码研究)软件。研究机构将受益于 ITK 和 VTK 的高度集成,并在一个由各种研究人员和开发人员支持的单一框架中通过数据管理、高级可视化和交互功能得到增强。您无需一遍又一遍地重新发明轮子,可以专注于您的工作。

1.2 MITK用途

  Medical Imaging Interaction Toolkit (MITK) 是一个免费的多功能开源软件项目,用于开发医学影像处理应用程序。它可以用作软件开发的 C++ 工具包或应用程序框架。您可以在下面找到针对不同使用场景的文档:

  • 您可能希望将 MITK 用作应用程序

  您可能希望以最终用户的身份使用 MITK Workbench,并且可以在 MITK 用户手册和 MITK 插件手册中找到用户手册。

  • 您可能希望开发自己的软件框架,并使用 MITK 的一些数据结构和算法

  您可能希望将 MITK 用作工具包,并且可能从构建说明和 MITK API 文档中受益最大。

  • 您可能希望使用 MITK 和 BlueBerry 软件框架来开发自己的软件

在这里,您又有两个选项:

  • 您可能希望使用 MITK Workbench 并扩展其功能

  您可能希望将 MITK 用作软件框架,并为 MITK 编写自己的模块和插件。您可能需要阅读 构建说明 和 开始您的 MITK 开发。此外,您可能想看看我们的 CMake 常见问题解答。

  • 您可能希望基于 MITK 创建自己的应用程序

  这可能是使用 MITK 的最常见方式。您可能希望将 MITK 用作软件框架,并使用 MITK 构建自己的项目和应用程序。您可能希望阅读 创建新的 MITK 项目 和 开始 MITK 开发 中的一般信息。此外,您可能想看看我们的 CMake 常见问题解答。

1.3 MITK源码下载

  
  MITK源码下载地址:https://github.com/MITK/MITK/releases;最新版本是MITK v2024.06,但要求Qt6以上,对于大多数开发者来说,可能使用低版本更加合适。
在这里插入图片描述
  
新旧版本第三方依赖库对比如下:
  
在这里插入图片描述

2、MITK编译环境配置

2.1 版本差异

  由于Qt6版本原因,对于v2024版本不做介绍。本人仅编译了MITK v2023.04和MITK v2021.10,两个版本均采用了VS2019+Qt5.15.2的编译环境。两个版本的编译差别并不太大,显著的差别是MITK v2023移除了CMakeExternals文件夹中的*.patch文件;
在这里插入图片描述
此外从*.cmake文件中也开始看出,对第三方库的下载地址变了:
在这里插入图片描述

  V2021版本在编译过程中从URL= http://mitk.org/download/thirdparty/中下载第三方依赖包;V2022版本在编译过程中直接从各个三方库的github仓库下载,例如 https://github.com/MITK/ITK.git。
  
在这里插入图片描述

2.2 编译环境配置

  本次以MITK v2021-10.0编译为例进行详细讲述。

  关于MITK v2023的编译遇到的问题并不多,安装opensslV3.4,设置好VPN以便正常访问github,然后记得把git的代理端口设定好,即可正常拉取三方库进行编译,唯一印象深刻的是,vtk自动编译以后的路径设定于别的库不太一致导致cmake文件报错,本人采用修改报错对应的.camke文件中绝对路径的方式进行了修改,并完成了编译

  在编译之前,需要先安装好以下软件:VS2019 ,Qt5.15.2 , CMake 3.18.6, Git,openSSL-v1.1.1。注意QT安装时,需要勾选Qt Script,否则config时候会提示找不到Qt模块。
在这里插入图片描述

3、MITK源码编译

3.1 修改patch文件格式

  修改路径\MITK-2021.10\CMakeExternals*.patch文件的格式。把文件夹里面的6个patch文件使用notepad++文本编辑软件打开,统一修改换行方式为Windows PC方式(后缀为CRLF),不能是Unix方式。

关于notepad++软件,可以如下操作:

  • 点击“试图”-“显示符号”-"显示行尾符"来查看行尾符格式;
  • 点击“编辑”-“文档格式转换”-"转为Windows"来修改行尾符格式。
  • 修改完后文件的结尾后缀应该为CRLF。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2 cmake生成 MITK-superbuild

  在文件夹下新建build文件夹和install文件夹;打开cmkae-gui.exe,建议源码路径和build路径不要过长且不要包含中文,否则极有可能出错。
在这里插入图片描述
  我这边出现了这个错误,所有的三方库文件地址:http://mitk.org/download/thirdparty/无法下载成功,但放在浏览器中可以正常下载。因此采用手动下载patch.exe文件的方式,然后修改cmake中patch.exe文件路径解决了config报错问题。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Generate生成VS工程,然后Open Project即可打开 MITK-superbuild.sln解决方案;

3.3 编译MITK-superbuild

  如果编译过程发现同上面无法从http://mitk.org/download/thirdparty/ 地址下载文件包的错误,可以手动下载后放到对应的E:\MITK2021.10\build\ep\src文件夹下,解决下载失败的问题。
在这里插入图片描述
  打开MITK-superbuild解决方案,然后选择ALL_BUILD进行生成。编译最后应该会报错MITK-Core错误类似的错误,此处可以暂时不必处理,只要不会影响下一步cmake的config操作即可。
在这里插入图片描述

3.4 cmake生成 MITK

  再次打开cmake,不过build文件路径需要修改为build/MITK-build,MITK-build文件夹是上一步自动生成的,不需要新建。
在这里插入图片描述
同样进行config和Generate操作,最后生成打开MITK解决方案。

3.5 编译MITK

在这里插入图片描述
  打开MITK解决方案,然后选择ALL_BUILD进行生成。

4、MitkWorkbench运行效果

在这里插入图片描述

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

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

相关文章

项目模块1~12总结:服务器大模块梳理

一、思维导图 二、设计思路 1、各种回调函数梳理 服务器里面包含了监听套接字和监听到的通信套接字(新连接),我们要对这两种套接字进行设置回调函数,其中监听套接字里面只要设置读回调,通信套接字要设置5种回调&…

023集——CAD 窗体交互、多段线进行翻转、错误提示(CAD—C#二次开发入门)

效果如下: 窗体模块: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…

照明灯具哪个品牌好?2024照明灯十大知名品牌大公开

在现代生活中,护眼台灯已经成为许多加班族的必备神器。但是,市场上的护眼台灯种类繁多,价格也各有不同,我们也不能每一个都买回家进行测试,看看照明灯具哪个品牌好?别担心,我帮你们找了&#xf…

FileLink跨网数据摆渡系统:打破网络隔阂,轻松实现跨网络数据传输

在数字化时代,跨网络、跨区域的数据传输成为了企业和个人信息流通的重大挑战。而如今,FileLink跨网数据摆渡系统的问世,彻底解决了这一难题,帮助用户实现快速、安全、无缝的跨网络数据传输。 1. 跨网络数据传输的痛点 随着企业信…

C语言 — 指针的进阶

文章目录 前言一、字符指针二、指针数组三、数组指针数组名 与 &数组名 四、指针传参二维数组传参 五、函数指针结语 前言 通过前面的关于指针的学习,我们了解了指针的一些个特性。本篇文章我们将深入指针,挖掘指针更深处的知识。 在开始之前&#…

【机器学习导引】ch4-决策树

基本流程 两个需要解决的问题 属性顺序: 问题:哪些属性在前面,哪些属性在后面?这个问题指的是在处理数据或进行排序时,需要确定属性的排列顺序,以便更好地进行数据处理或分析。 属性选择: 问题…

[ DOS 命令基础 4 ] DOS 命令命令详解-端口进程相关命令

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

博客系统(SpringBoot项目)

文章目录 一、项目开发的流程二、项目开发2.1 准备工作2.2 开发公共模块:把能写的先写了什么是公共模块model层mapper层定义统一返回结果统一异常处理 2.2 博客列表页2.3 更改显示的时间2.4 博客详情页2.5 登录Session式登录方法分析使用Token来实现登录 2.6 强制登…

软件设计师笔记-数据结构

数据结构 数据元素的集合及元素间的相互关系和构造方法。 线性表的存储结构 顺序存储链式存储 单链表节点 typedef struct node { int data; struct node *link; }NODE, *LinkList; 双向链表 每个节点有两个指针,分别指出直接前驱和直接后继。 循环链表 尾…

LangChain Ollama实战文献检索助手(一)环境配置和输入输出解析

挑选合适的模型 调用API需要花钱,因此在搭建阶段最佳的方法是利用Ollama部署本地CPU推理的轻量化大模型。大模型选择可以参照hugging face的榜单open-llm-leaderboard。 这里对我来说,要选择的模型需要满足 1.ollama上有的模型。 2.推理速度快&#xff…

在docker中搭建redis哨兵环境

文章目录 一、引言二、环境准备前提条件目录结构 三、配置文件1. 主节点配置文件 sentinel-master.conf2. 从节点配置文件3. 哨兵配置文件 sentinel.conf4. Docker Compose 文件 四、启动 Docker Compose五、验证哨兵机制1. 检查主节点状态2. 检查从节点状态3. 检查哨兵状态4. …

上线不出网机器

不出网机器介绍 上线不出网机器是我们常见的问题,如何在内网中实现不出网机器的上线呢,我们分为了如下的形式,根据之前所学的内容我们开始进行实验,常见的网络拓扑如下 情况分类 上线不出网机器一般是指B区域的电脑上线到CS工具或…

Modbus解析流程全面升级:体验全新核心与终极优化!

01 前言 本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,请搜索公众号: 智能家居NodeRed和HomeAssistant 即可关注。 02 全面改进的解析流程 前面发布过的Modbus解析流程在经过多个设备测试后发现存…

Python邮差:如何用代码精确投递商品快递费用的密信

目录 一、准备工作 二、编写API请求脚本 三、解析与处理快递费用数据 四、案例应用:模拟电商平台的快递费用计算 五、自动化邮件通知 六、总结 在电子商务的广阔天地里,精确计算并快速传递商品快递费用是一项至关重要的任务。作为Python邮差&#…

修改sql server 数据库的排序规则Chinese_PRC_CI_AS(字符集+排序)

文章目录 引言I 解决方案案例II 知识扩展排序规则SQL SERVER支持的所有排序规则引言 新增sql server 数据库实例的默认排序规则不支持中文存储,导致乱码 解决方案: 修改排序规则为Chinese_PRC_CI_AS 或者 Chinese_PRC_Stroke_CI_AS_WS或者Chinese_PRC_CI_AI_KS_WS 仅对新增…

七十页PPT展示智驾时代来临,国产汽车零部件厂商准备几何?

u 智能汽车车身架构主要可分为感知、决策控制、执行及通信四大板块,目前国产汽车零部件供应商在感知系统已取得较强的话语权,在决策控制系统、执行系统领域亦取得一定竞争力。 u 感知系统主要硬件包括激光雷达、毫米波雷达、摄像头等;其中&a…

Springboot 整合 Java DL4J 打造自然语言处理之智能写作助手

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

moffee

https://github.com/BMPixel/moffee Moffee:一键将Markdown转换为专业PPT,支持多主题与实时预览 文章目录 1-安装1.1-环境1.2-编码 2-使用2.1-语法 moffee 演示让 Markdown 准备好演示为什么选择 moffee?展示用 Markdown 设置样式媒体布局 1-…

玩转「HF/魔搭/魔乐」平台

模型下载 Hugging Face 下载到 GitHub CodeSpace CodeSpace创建环境: # 安装transformers pip install transformers4.38 pip install sentencepiece0.1.99 pip install einops0.8.0 pip install protobuf5.27.2 pip install accelerate0.33.0下载internlm2_5-7b…

运维高可用架构设计

一、硬件 1、服务器 2、网络架构 二、软件 1、基础组件 组件名称 高可用方式 最少节点数 负载均衡(Tenginx) corsyncpacemaker互为主备 多组集群通过DNS轮循实现一个大集群 2DNS主从集群2RabbitMQ原生HA镜像集群3Zookeeper原生分布式集群3Kafka原生分布式集群3ES原生分布式集…