cmake配置ITK及其BridgeOpenCv模块的问题记录

背景

在不借助vtk的情况下将dicom图像在qt中显示出来,理论上可以通过ITK获取图像的uchar* 数据,借助于相应的方法应当可以将uchar* 数据传入qimage,但在网上调研及实际操作过程中,发现获取的reader及reader->getOutput无任何可视化char*信息。于是决定将itk转化为mat,在此过程中,需引入itkOpenCVImageBridge.h头文件,于是开始了camke重新编译ITK的过程。

配置

cmake最新版本配置会出现错误提示,但会显示configure done,不确定实际编译程序是否能用。第一次使用cmake配置后,运行带有itk的程序显示错误,错误类型为出现无法解析的外部符号。联想到此处的红色提示,当时立刻降了版本3.16重新编译。(实际问题应是没有BUILD_SHARED_LIBS,详细叙述见后文)稳妥起见,建议用较低版本编译。一般创立三个文件夹,源码在Source文件夹,编译二进制在BUILD文件夹,还有一个BIN文件夹(见后文CMAKE_INSTALL_PREFIX描述,也可不更改,默认在Program Files文件夹下)。
cmake配置ITK及其BridgeOpenCv模块的问题记录_第1张图片

configure前选择相应的编译器和位数,一般选择x64。需格外注意的是默认编译32位。
cmake配置ITK及其BridgeOpenCv模块的问题记录_第2张图片
将CMAKE_INSTALL_PREFIX栏改为自己认为合适的安装路径,如自己建立的BIN文件夹,该路径会在visual studio的install生成后产生文件。

cmake配置ITK及其BridgeOpenCv模块的问题记录_第3张图片
将BUILD下的BUILD_SHARED_LIBS勾选,否则编译后的bin目录下没有dll,程序运行会出错。出现无法解析的外部符号,如下图所示。
cmake配置ITK及其BridgeOpenCv模块的问题记录_第4张图片

参考链接:https://blog.csdn.net/qq_15191677/article/details/69053514

Search栏输入opencv,找到相应模块Module_ItkVideoBridgeOpenCV,勾选,再次configure,提示输入OpenCV_DIR路径,笔者电脑中两个opencv,都试过编译。根据参考链接直接选中build目录只有一个opencv能成功。如若不能成功,可改用x64\vc15下的lib目录。
cmake配置ITK及其BridgeOpenCv模块的问题记录_第5张图片

Configure Done后,Generate,并Open Project。右键ALL_BUILD生成,时间较长。之后再右键INSTALL生成。
cmake配置ITK及其BridgeOpenCv模块的问题记录_第6张图片
将位数由x86改为现在x64,引入BIN目录下的头文件和库文件,程序便可正常运行。一个小技巧,可以使用cmd的命令自动生成包含lib文件名的txt文件,然后将其粘贴到附加依赖库中。在lib文件目录下打开cmd,输入以下指令即可。

dir /b *.lib>1.txt

cmake配置ITK及其BridgeOpenCv模块的问题记录_第7张图片

你可能感兴趣的:(qt,c++,cmake,dicom)