一、itk在VS2019上面的安装 和例子(HelloWorld)运行
一、Itk简介
vtk是专门用于医疗图像处理的函数库,类似opencv.
这篇博客主要是讲解安装vtk之后的例子的运行,即如何构建自己的第一个ITK例子
二、Itk安装
Itk安装参考这篇博客:
https://www.it610.com/article/5231454.htm
主要过程是:
1、vs2019安装
2、Itk的下载
3、cmake的安装
4、ITK的编译安装
三、构建自己的第一个例子:
在上面提到的那一篇博客里面,ITK已经实现了下载和安装。
下面主要给出构建自己的工程的一些简单的小技巧。
运行INSTALL之后我的安装文件夹截图:

下面我们新建一个空白的工程:

在工程建立以后,设置模式为release x64:

接下来我们配置属性表:
1、在界面左侧或者右侧有解决方案管理器

2、找到属性管理器,可以看到有四行,选择 Release | x64(这个和上面的模式是符合的)
右键,选择新建项目属性表

3、将项目属性表放在本工程文件夹的下面,确保你不会忘记在那里
4、找到该项目属性表:

图中第一项就是建立的 即ITKpropertyCanBeUsedForever
5、右键,选择 属性
6、添加库目录、头文件
VC++目录 --包含目录 中添加前面的安装文件夹,即...\itk_out\include
VC++目录 --库目录里面包含...\itk_out\lib

7、在 链接器-输入-附加依赖项里面添加 ...\itk_out\lib 里面的所有的.lib文件名

比如我的文件夹里面是这样的:

我需要把所有的.lib的文件的文件名都输入到上面那个框里面。
这里有一个小窍门:
可以按照这个链接的方法去做。
https://jingyan.baidu.com/article/f3ad7d0f51f5bf09c3345bbd.html
然后删除掉所有的不是.lib的文件。
将所有的文件名复制到那个框里面。
7、设置对.dll文件的链接
选择-调试

打开HelloWorld属性.
然后配置下面的:

在环境里面添加...\itk_out\bin的路径。
格式如图:
path=%path%;..\..\bin\ // ..\..\bin 是bin文件夹所在的路径
8\添加主函数,将下面的代码添加进去:
#include "itkImage.h"
#include <iostream>
int main()
{
using ImageType = itk::Image< unsigned short, >;
ImageType::Pointer image = ImageType::New();
std::cout << "ITK Hello World !" << std::endl;
return EXIT_SUCCESS;
}
随后生成,就可以看到下面的运行结果:

至此,大功告成。
四、以后如何使用:
难道我以后也要这么复杂的像上面那么去操作吗?
当然不是的。
在上面我们已经建立了一个属性表ITKCanBeUsedForever
在以后建立的工程里面,只需要将属性表复制到对应的工程文件夹,然后在属性管理器里面添加就好了,不需要我们再去配置。
然后重新进行第七步操作就可以了。
这样有两个优点:
1、不需要一步步去重复配置属性表了
2、即使工程发生了移动,只要还是在本电脑上面,就可以正确运行(这是针对第七步来说的)。对于第七步来说,我们当然可以去将bin文件架下面的所有的.dll文件复制到工程目录,但是很繁琐,而且占用额外的空间
也可以添加环境变量,但是不值得。
所有这样设置.dll 也算是一种不错的方式。
五、参考链接
批量提取一个文件夹的文件:https://jingyan.baidu.com/article/f3ad7d0f51f5bf09c3345bbd.html
ITK的安装:https://www.it610.com/article/5231454.htm
如果想了解为什么要这么配置,参看这个链接:https://blog.csdn.net/qq_25160757/article/details/79813428
如果问题,欢迎指正。
一、itk在VS2019上面的安装 和例子(HelloWorld)运行的更多相关文章
- Android Studio中mac上面的安装
Android Studio中mac上面的安装 学习了:https://blog.csdn.net/xianrenli38/article/details/79347170 http://www.an ...
- Git 在 windows 上面的安装
参考博客: https://blog.csdn.net/xiezhongyuan07/article/details/79411299 将该作者的文章搬过来, 大家可以直接看上面的原文章. 下面是拷贝 ...
- redis 在windows 上面的安装和使用,集群搭建
redis作为nosql数据库,将数据存储到内存中(缓存),具有非常高的性能.下面讲解一下redis的安装及java api的使用. 1:redis 安装 windows 上面直接下载msi文件,安装 ...
- caffe搭建--caffe在invidia+cpu 酷睿2Q9300 + ubuntu16.04.2上面的安装和编译过程
本文原创,转载请注明出处. ------------------------------------------------分割线-------------------------------- 概要 ...
- Redis在centos上面的安装
一.安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@iZwz991stxd ...
- secureCRT在Windows上面的安装过程
参考这篇文章: https://www.cnblogs.com/yjd_hycf_space/p/7729796.html
- solr7.3.1在CentOS7上的安装
1 solr的下载 从Solr官方网站(http://archive.apache.org/dist/lucene/solr/7.3.1/ )下载Solr最新版本, 根据Solr的运行环境,Linux ...
- Gitlab在Centos7上的安装
一 官网说明 安装步骤:https://about.gitlab.com/install/#centos-7 安装说明:本文只是用来给微服务当配置中心,只是较浅的记录一下安装步骤,后面会详细讲解及在d ...
- 开源网络备份软件 bacula 的安装、配置和运行
安装bacula 1 bacula的几种网络备份拓扑 前面文章介绍了bacula有5个组成部分,在实际的应用中,没有必要将5个部分分别放在不同的服务器上,它们之间的某些部分是可以合并的,常见的bacu ...
随机推荐
- Path Manipulation 路径操作
- CSS transition 的默认值
语法 transition: property duration timing-function delay|initial|inherit; 示例: div { width: 100px; ...
- Android 非法字符:'/ufeff'
[问题来源] 不知道大家有没有做过这样的事,在Android开发的过程中,通过文本直接修改代码,不打开编译器,然后提交让同时编译运行.这时Android编译就会报错,指定修改的文件开始位置,显示非法字 ...
- Git 自救指南
Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式.但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本.即使在各种 G ...
- Oracle处理关于sysaux表空间爆满的问题---更新最新方法!!
对于SYSAUX表空间而言,如果占用过大,那么一般情况下是由于AWR信息或对象统计信息没有及时清理引起的,具体原因可以通过如下的SQL语句查询: SELECT OCCUPANT_NAME ORDER ...
- MySQL数据库:函数的应用
字符串截取 # 从左边开始 第1个字符 left(字段名,1) # 从那里开始,截取几个 substring(字段名,1,1) str函数 # 连接字符串 concat(s1,s2,s3,--,sn) ...
- Python语法速查:目录
1. 数据类型与内置函数 2. 列表.元组.字典.集合操作 3. 字符串格式化 4. 字符串常用操作 5. 运算符.math模块.表达式 6. 循环与迭代 7. 函数基础 8. 类与对象 9. 函数进 ...
- 【bzoj5093】[Lydsy1711月赛]图的价值(NTT+第二类斯特林数)
题意: 给定\(n\)个点,一个图的价值定义为所有点的度数的\(k\)次方之和. 现在计算所有\(n\)个点的简单无向图的价值之和. 思路: 将式子列出来: \[ \sum_{i=1}^n\sum_{ ...
- Python数据结构性能分析
1.目标 告诉大家Python列表和字典操作的 大O 性能.然后我们将做一些基于时间的实验来说明每个数据结构的花销和使用这些数据结构的好处 2.实操 在列表的操作有一个非常常见的编程任务就是是增加一个 ...
- Object对象方法ES5
Object.create(proto,propertiesObject)方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__. 参数: proto:新创建对象的原型对象. pro ...