使用itk编程实例详解.docx

上传人:b****7 文档编号:10148376 上传时间:2023-02-08 格式:DOCX 页数:18 大小:1.62MB
下载 相关 举报
使用itk编程实例详解.docx_第1页
第1页 / 共18页
使用itk编程实例详解.docx_第2页
第2页 / 共18页
使用itk编程实例详解.docx_第3页
第3页 / 共18页
使用itk编程实例详解.docx_第4页
第4页 / 共18页
使用itk编程实例详解.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

使用itk编程实例详解.docx

《使用itk编程实例详解.docx》由会员分享,可在线阅读,更多相关《使用itk编程实例详解.docx(18页珍藏版)》请在冰豆网上搜索。

使用itk编程实例详解.docx

使用itk编程实例详解

步骤:

1、创建项目文件夹,包括源文件和生成文件夹

如:

test,test-bin,

前者test用于存放源代码(c++),CMakeLists.txt的cmake配置文件

后者test-bin用于存放经过cmake编译后生成的文件(工程文件.sln等)

2、编写源代码文件和CMakeLists.txt文件

Cmake基本语法

注:

cmake命令最好大写

1.       #表示注释

2.       变量:

使用set命令显式定义及赋值,在非if语句中,使用${}引用,if中直接使用变量名引用;后续的set命令会清理变量原来的值;

3.       command(args...)  #命令不分大小写,参数使用空格分隔,使用双引号引起参数中空格

4.       set(vara;b;c)<=>set(varabc)  #定义变量var并赋值为a;b;c这样一个stringlist

5.       Add_executable(${var})<=>Add_executable(abc)   #变量使用${xxx}引用

6.       条件语句:

if(var)#var 非empty0NNoOFFFALSE...#非运算使用NOT

       …

else()/elseif()…endif(var)

7.       循环语句

Set(VARabc)

Foreach(f${VAR})       …Endforeach(f)

8.       循环语句

WHILE()…ENDWHILE()

Cmake命令:

链接来源:

1、PROJECT(HELLO)#指定项目名称,生成项目名称

使用${HELLO_SOURCE_DIR}表示项目根目录

2、INCLUDE_DIRECTORIES#指定头文件的搜索路径

INCLUDE_DIRECTORIES(${HELLO_SOURCE_DIR})#指定HELLO项目源文件根目录

3、TARGET_LINK_LIBRARIES#添加链接库

TARGET_LINK_LIBRARIES(HELLO${ITK_LIBRARIES})

#将可执行文件与ITK_LIBRARIES链接成最终文件HELLO

4、ADD_EXECUTABLE#编译可执行程序,指定编译

ADD_EXECUTABLE(HELLOhello.cxx)#将hello.cxx编译成可执行文件

CMakeLists.txt(cmake配置文件)

#注明cmake最低版本要求,不写会报错或警告

cmake_minimum_required(VERSION2.8)

#定义项目名称为SHOWPIC,和可执行文件showpic没有任何关系

PROJECT(SHOWPIC)

#找ITK的包,如果找到就加载进来

FIND_PACKAGE(ITK)

IF(ITK_FOUND)

INCLUDE(${USE_ITK_FILE})

ENDIF(ITK_FOUND)

#指定SHOPIC项目源文件根目录的搜索路径

INCLUDE_DIRECTORIES(${SHOWPIC_SOURCE_DIR})

#指定编译可执行程序,将showpic.cxx编译成可执行文件

ADD_EXECUTABLE(SHOWPICshowpic.cxx)

#将可执行文件与ITK_LIBRARIES链接成最终文件SHOWPIC

TARGET_LINK_LIBRARIES(SHOWPIC${ITK_LIBRARIES})

 

Showpic.cxx(cxx中的x是x,y,z的x)

#include"itkImage.h"

#include"itkImageFileReader.h"

#include"itkImageFileWriter.h"

intmain(int,char*argv[])

{

//通过指定表示图像的像素和维数的值来定义图像的类型。

typedefunsignedcharPixelType;

constunsignedintDimension=2;

typedefitk:

:

ImageImageType;

//以reader和writer的类型为例,这两个类通过图像类型被参数化:

typedefitk:

:

ImageFileReaderReaderType;

typedefitk:

:

ImageFileWriterWriterType;

//用New()函数并把结果赋值给一个itk:

:

SmartPointer来创建每个类型的对象

ReaderType:

:

Pointerreader=ReaderType:

:

New();

WriterType:

:

Pointerwriter=WriterType:

:

New();

//被读或写的文件名用SetFileName()函数传递

reader->SetFileName("D:

\\1.jpg");

writer->SetFileName("D:

\\itk\\showpic\\2.jpg");

//由于Reader的输出并未连接到其他的滤镜,所以在目前的例子中我们必须精确//地调用//Updata()方法。

//对Reader调用更新:

reader->Update();

//直接传递reader的输出给writer的输入来创建一个短数据通道:

writer->SetInput(reader->GetOutput());

//数据通道的执行被最后对象的Update()触发。

在这个情况下,最终的数据通道对象是writer。

在通道被执行时,最明智的自我保护程序的做法是在一个try/catch模块中插入Update()以抛出异常。

try

{

writer->Update();

}

catch(itk:

:

ExceptionObject&err)

{

std:

:

cerr<<"ExceptionObjectcaught!

"<

:

endl;

std:

:

cerr<

:

endl;

returnEXIT_FAILURE;

}

return0;

}

 

3、用CMAKE进行配置编译

打开cmake软件

Whereisthesourcecode:

(源文件路径):

D:

/ITK/showpic/showpic

Wheretobuildthebinaries:

(生成文件存放路径):

D:

/ITK/showpic/showpic-bin

点击后状态如下图

接着,显示第一次配置完成,但上面部分为红色,应该继续点击configure,直到红色部分变白

再次点击之后效果:

接着,点击旁边的:

Generate生成

 

4、在编译器visualstdio2010中进行编译

首先,找到showpic-bin目录,里面已经生成了工程项目,打开它,找到

SHOWPIC.sln文件(工程文件),双击打开

 

 

 

进入了vs10界面

 

5、查看结果:

首先,源程序(showpic.cxx)中的reader->SetFileName(“D:

\\1.jgp”);(查看该段代码)

 

图片1.jgp就存放在D盘目录下,如图所示

读入和输出之后的图片名2.jpg,则存放在:

D:

\ITK\showpic

 

 

对比效果:

 

6、遇到问题分析:

(1)在cmake编译过程中可能会报错,一般都是CMakeLists.txt文件没有配置好,字母写错或不应该小写(cmake命令)。

如果解决不了,重新进行编译,不过要先将showpic-bin(生成文件夹目录)里面的东西都删除掉,然后在进行编译,否则编译还是会报错。

(2)还有一个报错”打开不了itkImage.h文件

如下所示

这个错误也是由CMakeLists.txt文件没有配置好,理由基本同上。

交流:

1136958892

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1