StudyVtk-04 在iOS中使用VTK

本文讲述了作者为了解决iOS设备cbct文件解析问题,从委托Unity开发转至使用VTK进行iOS框架编译的过程,尽管遇到了编译问题,但最终成功实现了大文件在iOS设备上的解析,展示了技术探索和解决实际问题的过程。
摘要由CSDN通过智能技术生成

1背景介绍

因为公司业务需要,委托软件开发公司开发了一款可以在iOS设备中查看cbct的工具,具体工作原理是在PC端使用一款软件,将目标的cbct序列文件转换成nii格式的文件,通过网络将生成的nii文件传输到手机中,手机端接收后进行解析查看,可实现三个轴位的观察,切片位置切换以及窗宽床位调整等功能。项目结束后移交到我手中进行维护,经测试和用户反馈后发现该软件仅支持小视野cbct,以及分辨率和尺寸不大的cbct文件,全口的cbct数据发送到手机端后因为解析不成功 app直接闪退,且软件适配的cbct类型较少,不能满足客户需求,排查问题后发现系软件开发公司使用Unity进行开发,nii文件解析和显示使用的是Volume Viewer ProVolume Viewer Pro | Fullscreen & Camera Effects | Unity Asset Store 插件详情页明确说明:Not suited for mobile! Not suited for large data sets! 虽然他们做到了在手机中使用,但是可能存在bug而且大文件无法解析的问题还是无法得到解决,因为博主有在PC端进行vtk开发的基础,所以就想能不能在iOS设备中也使用vtk进行开发,在vtk源码中发现了对iOS设备的支持,查看官方文档确实支持。完美,开启万里长征第一步!

2编译源码

与vtk在PC端开发中第一步工作相同,编译源码,博主使用的是8.2.0版本(先后尝试了9.3.0和9.2.6、7.1.1)vtk,电脑用的是Mac Pro M2 Max芯片32GB内存,CMake版本为3.26.4,XCode版本为15.0.1,SDK版本为17.0。

因为现在vtk最新版本为9.2.6,所以想直接尝试在最新版本上编译iOS framework,与常规编译过程相同

1下载源码

VTK - The Visualization Toolkit 在官网上下载最新版本(9.3.0)vtk源码,https://www.vtk.org/files/release/9.3/VTK-9.3.0.tar.gz ,下载完成后,将源码解压到目标位置,同时创建 build和install目录

2使用cmake进行项目配置

打开cmake-gui,设置对应目录,注意此时先不要点击configure

点击 Add Entry按钮,在弹出的对话框中,name填入VTK_IOS_BUILD,type选择BOOL,value设为选中状态,点击OK。

完成后点击Configure

配置完成后,建议VTK group中进行如下设置,再次点击configure按钮

确保所有条目中不存在红色标识,点击generate按钮,

到此,cmake中配置环节就完成了。

3使用make命令进行编译

打开终端,切换到build所在目录,执行make -j128 命令,因为博主mac性能较高,所有选择了较高的线程数,大家可以根据自己的mac性能情况进行自己调整8 16 32 64等参数,输入命令后将会运行较长一段时间,大概在20min左右,

但是,辛苦等来的确实最后一步的报错,包括在9.2.6版本中也进行了尝试,会发生同样的错误,

也没花过多时间,在这两个版本编译问题的解决上,如果有大佬编译成功麻烦评论一下方法,直接转向了8.2.0版本,同样的步骤和方法,最后提示编译成功,功夫不负有心人。

可以在install目录中看到framework包

3用官方示例代码测试编译好的framework

根据官方文档描述,vtk的demo应该在build目录中的CMakeExternals目录中,但并没有发现demo工程文件,所以我们选择直接打开源码中的Example目录中的iOS目录中的示例工程,

以VTKVier工程为例,在XCode中打开项目,点击左侧的项目根条目,在中间窗口中滑到最底部找到,下图选项,将其中原本存在的vtk.framework移除,点击加号选择我们编译好的vtk.framework,

点击上方选项卡切换到Build Settings页面,在右侧搜索栏中输入header,滑动滚动条,找到Search Paths设置组,按照你电脑中vtk.framework所在位置配置红框中两个目录

这时候应该不会再提示找不到头文件,但要想真正编译运行起来还需要设置签名,因为避免各种问题,所以我选择连接真机进行调试,博主使用的是iPhone 10,建议不要使用太老或者性能太差的设备进行调试。

设置好以后就可以点击运行了,就可以看到程序在手机中安装并运行起来,以下是运行效果图,最后一张图片是我验证那全口的cbct文件在iOS中的解析,显示稍微存在点问题,但是已经说明这个方案用来解决大体积的cbct文件在iOS设备中的解析和显示是可能的。如果遇到什么问题可,以私信或者评论联系!

4最后

到这里其实我是探索了2周左右的时间,其中也是经历了很多试错,现在记录在这里希望大家和以后的自己能够少走弯路,在技术路上一帆风顺。编译好库只是开始,接下来的工作将会更加具有挑战性。

希望和大家一起学习,共同成长。

Sharp tools make good work.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

把我格子衫拿来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值