图像处理ITK与Visual Studio2017的配置教程!_itk和vs版本对应-程序员宅基地

技术标签: ITK/VTK  

VS2017配置ITK

本次教程中的环境配置如下:

Visual Studio2017,cmake 3.9.4,ITK 4.13;

配置之前,声明一下,这里的VS选择2017,不是2019的原因,是源于2019版本太新,编译总是出现错误(之前测试过两次),所以在这里建议大家选择 VS版本的时候,最好在是2017及以前,

配置之前,你需要确保下面三个软件已经安装好,或者已经下载完毕;

  • Visual Studio 2017

    下载地址:Visual Studio 官网;

  • Cmake ;

    下载地址:Cmake官网

  • ITK 源码 ,

    下载地址:1,Itk官网;

    ​ 2 ,Github


上面工作完成之后,接下来就是正式的配置步骤,分为三大模块:Cmake源码编译、Visual Studio配置 以及 库函数衔接


Camke编译

创建一个ITK文件夹,在ITK文件夹下分别建立 BIN、Build和Source三个文件夹;

ITK文件夹主要作用就是要存放有关ITK所有文件的,说一下分别建立三个子文件夹的作用:

  • Source用来放置从网上下载下来的 ITK源码;
  • Build 用来放置 ITK 经过Cmake 编译之后的源码;
  • BIN 用来放置ITK 编译之后的 头文件以及一些 lib;

创建之后的文件夹(这里我用的是BIN_1、Build_1代替了BIN、Build):

Snipaste_2020-01-17_23-45-59.png

下一步,把下载好的 ITK 源码加压到 Source 文件夹中;

随后打开 Cmake 软件(执行程序是Cmake 解压目录 bin 下面的 cmake-gui.exe),打开之后页面如下图,:

Snipaste_2020-01-17_23-54-36.png

这里需要把Browse SourceBrowse Build两栏填写完整

  • Browse Source这一栏放置我们刚刚建立的 Source文件路径;
  • Browse Build 这一栏放置上面建立的 Build 文件夹路径;

添加完毕之后,点击左下角的 Configure 按钮 ,会进入下面这个页面,这里注意一点就是选择第一栏时不要选错了, 看好自己VS的版本以及电脑是64位还是32位的,这一步如果选错了,后面做再好也是没用的。

Snipaste_2020-01-17_23-55-03.png

接下来就是等待 第一次Configure 配置完(右下角绿色进度条走完),当第一次配置结束的时候,界面如下:

2.png

接下来,勾上 Advanced 前面的对话框,然后找到 找到一栏 ,把存放目录更改为之前创建的 BIN 文件夹目录,其他选项可以不用更改,然后,再次点击左下角的 Configure ,配置完的话,如果页面还出现红色区域,继续点Configure继续配置,直到 页面上没出现红色区域为止,配置完之后的效果:

Snipaste_2020-01-13_11-37-02.png

在这里,点击 Generate 按钮,生成相关文件(等待软件跑完进度条),之后下面调试框出现 Generating Done 时,代表生成完毕;然后点击右面的 Open Project ,系统会自动打开 Visual Studio;

Snipaste_2020-01-13_11-37-55.png


第二部分,Visual Studio 配置

VS打开之后,选择右边的解决方案 导航栏,找到 ALL BUILD 右击,点击 BUILD(生成);VS会自动配置编译好的 ITK源码(这个过程比较长,请耐心等待),

Snipaste_2020-01-13_11-47-17.png

上图就是配置成功的标志,但是到这里不代表已经配置成功了,还需要接下来的几步才能成功,这时候如果你打开之前建立的 BIN 文件夹,发现里面仍是空的,接下来的一步就是把 ITK 相关的库函数导入 BIN问价夹中,

在ALL BUILD(上一步用到的) 下面有一个INSTALL,鼠标右击选中 Project Only(仅本项目),点击子选项 Build Only INSTALL(仅生成),然后调试框就出现生成的过程;

Snipaste_2020-01-13_11-48-25.png

当全部生成完毕,你会发现原来BIN 文件夹下出现了 bin、include 、share、lib 等几个文件夹,别急,到这里还没完成,还有一步需要衔接 ITK的头文件和库函数;

235.png


第三步VS衔接ITK的库函数

这一步,需要创建一个新项目,在新项目的源文件中创建一个新脚本(.cpp),

完成之后,找到右边导航栏中的属性管理器,找到 Debug|X64 选项,选择子选项中的第一个User,右击,点击最下方的 Properties(属性),打开属性管理器;注意,打开之前看一下VS界面上面的工具栏是不是处于 Debug 和 X64的状态,如果不是请修正一下;

Snipaste_2020-01-13_11-56-32.png

打开属性管理器时,需要我们注意的第一个是左边的 CV++ Directories(VC++目录),点击之后,这里我们需要修改的地方有两个地方

  • Include Directories(包含目录),需要把 **D:\program fIle\ITK\Bin_1\include\ITK-4.13(以我的为例,自己根据自己情况添加自己的)**文件目录添加上去;
  • 还有一个需要修改的地方:Library Directories(包目录),这里把下面三个文件夹目录都添加上去(根据自己情况自己变换):
    • D:\program fIle\ITK\Bin_1\bin;
    • D:\program fIle\ITK\Bin_1\include\ITK-4.13;
    • D:\program fIle\ITK\Bin_1\lib

如下图:

Snipaste_2020-01-13_13-22-00.png

Snipaste_2020-01-13_13-22-33.png

最后一步,打开左边的 Linker(连接器),选中其中的 Input,这里需要把 D:\program fIle\ITK\Bin_1\lib目录下的所有 lib结尾的文件名放进去,如下图,Snipaste_2020-01-13_13-21-27.png

这里的话如果一个一个添加是比较麻烦的,这里教给大家一个比较方面的方法,在lib文件夹下放入一个 a.bat 文件(获取方式,关注公众号:Z先生点击 ,后台回复关键词 ITK 即可),双击击一下这个文件会自动生成一个 LIB.txt文件,里面就是我们要的所有 lib文件名称。(也可以自己写一个脚本,遍历一下)

Snipaste_2020-01-18_00-45-02.png


到这里整个 VS2017与 ITK 的配置已经完成,这里我们可以加入下面一些脚本测试一下:

#include "itkImage.h"
#include <iostream>
#include<itkAndImageFilter.h>
int main()
{
	typedef itk::Image< unsigned short, 3 > ImageType;
	ImageType::Pointer image = ImageType::New();
	std::cout << "ITK Hello World !" << std::endl;
	return EXIT_SUCCESS;
}

出现类似下面效果,就代表配置成功啦!接下来一篇教程将关于 在Visual Studio2017与VTK相关配置!

Snipaste_2020-01-18_09-36-16.png

淘宝搜了一下,这个教程值60RMB,这里不求给60RMB,麻烦广大读者关注一下公众号就行了。

QQ图片20200122105559.jpg


本人专注于数据分析,数据可视化、图像处理方面领域,个人公众号:Z先生点记,没事常来做做!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42512684/article/details/104068756

智能推荐

【浏览器】五大最好用的浏览器 最受欢迎的浏览器软件_火狐浏览器与edge-程序员宅基地

文章浏览阅读1.2k次,点赞30次,收藏27次。作为浏览器,它的界面简洁清爽,并且不管打开速度,还是加载速度都很快。除此之外,还有网页警示功能,会对打开的网页进行安全分析,若是网页存在安全问题,会提示用户。不管是哪款浏览器,只要适合自己使用,速度快稳定性强,安全性高,无广告无弹窗,功能齐全,那么就是比较好的浏览器。我们可以根据自己的情况,选择自己喜欢的浏览器,毕竟萝卜青菜各有所爱嘛。不同的浏览器提供不同的功能和性能,以满足用户对互联网浏览的不同需求。但是这里建议确定喜欢使用的浏览器后,我们可以将不需要的浏览器卸载,这样可以节省硬盘空间。_火狐浏览器与edge

VxWorks6.6安装-程序员宅基地

文章浏览阅读752次。在VMware10下安装VxWorks6.6虚拟机教程(上篇——准备环节)https://blog.csdn.net/kulala082/article/details/53887413在VMware10下安装VxWorks6.6虚拟机教程(中篇——FTP引导的bootrom.bin制作过程)https://blog.csdn.net/kulala082/article/details/53887920在VMware10下安装VxWorks6.6虚拟机教程(下篇——安装VxWorks 6.6_vxworks6.6

NR PDCP协议-程序员宅基地

文章浏览阅读1.6k次,点赞26次,收藏25次。PDCP:Packet Data Convergence Protocol主要功能:数据传输 PDCP SN的维护重排序和按序递交重复包丢弃头压缩加密解密完整性保护(相对于LTE,用户面数据属于可选的)基于discardtimer 的SDU丢弃PDCP重建_nr pdcp

从用户体验的角度说明产品的五个层次_选择一款产品,分析它的5个产品层次-程序员宅基地

文章浏览阅读3.9k次。战略层:解决有没有好产品的问题,要明确产品的定位和方向。能否直接或间接的满足用户的需求,是一个产品是否投入研发的关键。范围层:解决产品能不能用的问题,从功能和内容两个方,面来要求产品,兼顾功能性和实用性,使产品符合战略层目标,满足某种期望。结构层:解决产品好不好用的问题,主要从交互的角度对产品提出要求,简化使用流程。表现层:解决产品是否美观的问题,从视觉角度对产品内容进行整合,吸引用户眼球,提升用户_选择一款产品,分析它的5个产品层次

二维数组,字符串,字符数组_二维字符串数组-程序员宅基地

文章浏览阅读2.7k次。二维数组一.二维数组初始化【此处介绍4种方法】1.分行给二维数组赋初值,如int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2.可以将所有数据写在一个花括号内 如int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};3.对部分元素赋初值int a[3][4]={{1},{5},{9}};对各行中的某一元素赋初值 in..._二维字符串数组

冠军斩获10万奖金!首届“域见杯”医检AI开发者大赛精彩落幕-程序员宅基地

文章浏览阅读1k次。首届“域见杯”医检AI开发者大赛精彩落幕。

随便推点

c语言发送网络请求,如何使用C+发出HTTP请求?-程序员宅基地

文章浏览阅读783次。Windows代码:#include#include#include#include#include#include#includeusingnamespacestd;#pragmacomment(lib,"ws2_32.lib")intmain(void){WSADATAwsaData;SOCKETSocket;SOCKADDR_INSockAddr;intli..._c网络请求

ccc计算机比赛如何报名,整理:加拿大的CCC是什么,怎么报名?-程序员宅基地

文章浏览阅读1.6k次。原标题:整理:加拿大的CCC是什么,怎么报名?CCC计算机竞赛(全称 Canadian Computing Competition)由加拿大滑铁卢大学与清华大学联合举办面向高中生的CS计算机竞赛,是加拿大历史悠久,影响深远的计算机竞赛。自1996年首界竞赛至今已经有24年历史,累积超过近10万名加拿大境内外高中生参赛。不仅如此,CCC证书也是作为留学背景提升、申请北美知名院校,极具含金量的计算机证..._ccc计算机 考试中可以使用

RK3568 学习笔记 : ubuntu 20.04 下 Linux-SDK 镜像烧写_rk3568刷linux-程序员宅基地

文章浏览阅读952次,点赞8次,收藏7次。RK3568 学习笔记 : ubuntu 20.04 下 Linux-SDK 镜像烧写_rk3568刷linux

Gradle是什么_gradle是干嘛的-程序员宅基地

文章浏览阅读1w次。以下总结作为本人学习笔记使用:Gradle是一个开源的自动构建工具,可以作为android studio工程的依赖管理和打包工具,包括三方库和jar包的依赖和链接, java和res等资源的编译和打包1、在gradle之前,android的构建工具是ant,之前eclipse用的就是ant2、gradle脚本不使用传统的xml文件,而是一种基于Groovy的动态DSL,而Groovy语言是一种基于jvm的动态语言,可以像写脚本一样去写项目构建规则3、Android Gradle Plugin_gradle是干嘛的

adb命令集锦-程序员宅基地

文章浏览阅读75次。adb 是什么?adb工具即Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于电脑端与模拟器或者真实设备交互。常用操作:把文件发送到android设备,或从android拖拽文件到本地在android设备上安装/卸载应用把APP的日志导出到本地截屏思考:上面说的这几点能否有其他方式替代,有什么区别?adb怎么使用?下载adb压缩包..._adb命令精简微信

【Java基础学习打卡15】分隔符、标识符与关键字_java分隔符有哪三种-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏4次。本文将依托入门程序介绍 Java 代码中的分隔符、标识符和关键字,是基础中的基础。为之后的基础学习打基础。_java分隔符有哪三种

推荐文章

热门文章

相关标签