关于ITK编程的问题

yingzijuntuan 2013-07-21 07:59:33
先是要定义一个region: ImageType::RegionType region ;
然后是它的起始地址与大小: region.SetIndex(start);
region.SetSize(size);
但是,这里的region不应该是指针的嘛,怎么能用“.”运算符呢?求解释

还有个问题,是关于Reader的问题, const char *filename=argv[1];
reader->SetFileName(filename);
最后运行,结果发现提示错误,错误提示是野指针。。。。求解释
...全文
247 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruitear 2015-10-08
  • 打赏
  • 举报
回复
我也遇到这个updata()出错的问题,求解,QQ:791618964
jsanycall 2013-12-05
  • 打赏
  • 举报
回复
引用 7 楼 yingzijuntuan 的回复:
[quote=引用 6 楼 ri_aje 的回复:] [quote=引用 3 楼 yingzijuntuan 的回复:] 比如说: typedef itk::PointSet< unsigned short, 3 > PointSetType; PointSetType::Pointer pointsSet = PointSetType::New(); pointsSet->SetPoint( 0, p0 ); 因为很多这样定义的东西都是指针,所以我也误以为region是指针,实际上我知道是我理解的有点问题了。 但是,我对这个region还是有问题的,因为不管是“.”或者是“->”运算符,都能够取到东西,这个是怎么回事呢? reader的定义如下: typedef unsigned char PixelType; const unsigned int Dimension = 3; typedef itk::Image< PixelType, Dimension > ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; ReaderType::Pointer reader = ReaderType::New(); 然后,在示例里面,是这样用的: const char * filename = argv[1]; reader->SetFileName( filename ); 这个应该是读取图片的意思吧?但是,我直接读取一个jpg的时候总是有问题!!
我也不确定,没用过 itk,这里有个例子 http://www.itk.org/Wiki/ITK/Examples/IO/ImageFileReader,好像支持你的理解。 得调试一下才能确定原因了,手头没有 itk,估计帮不上你了。 在 SetFileName 之前打印一下 filename,看看到底是什么值?[/quote] 确实是打印filename有点不对劲,我把全部代码给贴出来吧:

#include "itkImage.h"
#include "itkImageFileReader.h"
int main( int , char * argv[])
{
  typedef double          PixelType;
  const unsigned int             Dimension = 2;
  typedef itk::Image< PixelType, Dimension >   ImageType;

  typedef itk::ImageFileReader< ImageType >  ReaderType;

  ReaderType::Pointer reader = ReaderType::New();

  char * filename ="D:\Program Files (x86)\ITK\HelloWorldBin\Debug\1.jpg";
  std::cout<<filename<<std::endl ; 
  reader->SetFileName( filename );

  reader->Update();

  ImageType::Pointer image = reader->GetOutput();

  return 0;
}
打印filename是这样的结果: D:Program Files (x86)ITKHelloWorldBinDebug.jpg 请按任意键继续. . . 但是为什么会这样呀。。。。不懂 对了,我调试了一下,貌似就是reader->Update();这里出了问题。。。 帮忙分析一下吧。。。[/quote] 我也遇到这个问题 怎么解决的啊 update就会出错
ri_aje 2013-07-23
  • 打赏
  • 举报
回复
\ 字符需要转义,改成这样再试试。

 char const* const filename ="D:\\Program Files (x86)\\ITK\\HelloWorldBin\\Debug\\1.jpg";
ri_aje 2013-07-22
  • 打赏
  • 举报
回复
引用 3 楼 yingzijuntuan 的回复:
比如说: typedef itk::PointSet< unsigned short, 3 > PointSetType; PointSetType::Pointer pointsSet = PointSetType::New(); pointsSet->SetPoint( 0, p0 ); 因为很多这样定义的东西都是指针,所以我也误以为region是指针,实际上我知道是我理解的有点问题了。 但是,我对这个region还是有问题的,因为不管是“.”或者是“->”运算符,都能够取到东西,这个是怎么回事呢? reader的定义如下: typedef unsigned char PixelType; const unsigned int Dimension = 3; typedef itk::Image< PixelType, Dimension > ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; ReaderType::Pointer reader = ReaderType::New(); 然后,在示例里面,是这样用的: const char * filename = argv[1]; reader->SetFileName( filename ); 这个应该是读取图片的意思吧?但是,我直接读取一个jpg的时候总是有问题!!
我也不确定,没用过 itk,这里有个例子 http://www.itk.org/Wiki/ITK/Examples/IO/ImageFileReader,好像支持你的理解。 得调试一下才能确定原因了,手头没有 itk,估计帮不上你了。 在 SetFileName 之前打印一下 filename,看看到底是什么值?
ri_aje 2013-07-22
  • 打赏
  • 举报
回复
引用 4 楼 yingzijuntuan 的回复:
ri_aje,ITK有没有类似MSDN的东西呀,里面的函数这么多,都没有个函数说明吗?有的话,能给贴个网址不!
像 msdn 那么全面周到的估计没有,看看这个呢 http://www.itk.org/Doxygen/html/classes.html。
yingzijuntuan 2013-07-22
  • 打赏
  • 举报
回复
ri_aje,ITK有没有类似MSDN的东西呀,里面的函数这么多,都没有个函数说明吗?有的话,能给贴个网址不!
yingzijuntuan 2013-07-22
  • 打赏
  • 举报
回复
比如说: typedef itk::PointSet< unsigned short, 3 > PointSetType; PointSetType::Pointer pointsSet = PointSetType::New(); pointsSet->SetPoint( 0, p0 ); 因为很多这样定义的东西都是指针,所以我也误以为region是指针,实际上我知道是我理解的有点问题了。 但是,我对这个region还是有问题的,因为不管是“.”或者是“->”运算符,都能够取到东西,这个是怎么回事呢? reader的定义如下: typedef unsigned char PixelType; const unsigned int Dimension = 3; typedef itk::Image< PixelType, Dimension > ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; ReaderType::Pointer reader = ReaderType::New(); 然后,在示例里面,是这样用的: const char * filename = argv[1]; reader->SetFileName( filename ); 这个应该是读取图片的意思吧?但是,我直接读取一个jpg的时候总是有问题!!
yingzijuntuan 2013-07-22
  • 打赏
  • 举报
回复
引用 6 楼 ri_aje 的回复:
[quote=引用 3 楼 yingzijuntuan 的回复:] 比如说: typedef itk::PointSet< unsigned short, 3 > PointSetType; PointSetType::Pointer pointsSet = PointSetType::New(); pointsSet->SetPoint( 0, p0 ); 因为很多这样定义的东西都是指针,所以我也误以为region是指针,实际上我知道是我理解的有点问题了。 但是,我对这个region还是有问题的,因为不管是“.”或者是“->”运算符,都能够取到东西,这个是怎么回事呢? reader的定义如下: typedef unsigned char PixelType; const unsigned int Dimension = 3; typedef itk::Image< PixelType, Dimension > ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; ReaderType::Pointer reader = ReaderType::New(); 然后,在示例里面,是这样用的: const char * filename = argv[1]; reader->SetFileName( filename ); 这个应该是读取图片的意思吧?但是,我直接读取一个jpg的时候总是有问题!!
我也不确定,没用过 itk,这里有个例子 http://www.itk.org/Wiki/ITK/Examples/IO/ImageFileReader,好像支持你的理解。 得调试一下才能确定原因了,手头没有 itk,估计帮不上你了。 在 SetFileName 之前打印一下 filename,看看到底是什么值?[/quote] 确实是打印filename有点不对劲,我把全部代码给贴出来吧:

#include "itkImage.h"
#include "itkImageFileReader.h"
int main( int , char * argv[])
{
  typedef double          PixelType;
  const unsigned int             Dimension = 2;
  typedef itk::Image< PixelType, Dimension >   ImageType;

  typedef itk::ImageFileReader< ImageType >  ReaderType;

  ReaderType::Pointer reader = ReaderType::New();

  char * filename ="D:\Program Files (x86)\ITK\HelloWorldBin\Debug\1.jpg";
  std::cout<<filename<<std::endl ; 
  reader->SetFileName( filename );

  reader->Update();

  ImageType::Pointer image = reader->GetOutput();

  return 0;
}
打印filename是这样的结果: D:Program Files (x86)ITKHelloWorldBinDebug.jpg 请按任意键继续. . . 但是为什么会这样呀。。。。不懂 对了,我调试了一下,貌似就是reader->Update();这里出了问题。。。 帮忙分析一下吧。。。
ri_aje 2013-07-22
  • 打赏
  • 举报
回复
那点让你觉得 RegionType 是指针呢? reader 怎么定义的,代码发上来?
yingzijuntuan 2013-07-21
  • 打赏
  • 举报
回复
还有个问题,如果我这么用的话: reader->SetFileName("D:\Program Files (x86)\ITK\HelloWorldBin\Debug\1.jpg"); 可以吗?反正运行的时候是提示了错误,Debug Error! R6010 -abort() has been called

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧