itkConnectedComponentImageFilter对输入图像大小的限制
来源:互联网 发布:学霸君怎么样知乎 编辑:程序博客网 时间:2024/06/07 02:33
版本信息:Win10(64bit),VS2013(64bit),ITK4.8.2,VTK6.3.0,Qt5.4.2
1 问题描述
使用VTK实现对3D CT数据进行切片重新提取,然后使用ITK对切片进行二维分析,这是需要使用到itkConnectedComponentImageFilter将灰度图转换为Label Image。当切片的尺寸非常小时(如2x2),会出现错误:
Debug Assertion Failed! Program: C:\WINDOWS\SYSTEM32\MSVCP120D.dll File: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\vector Line: 1201 Expression: vector subscript out of range For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts. (Press Retry to debug the application)上述提示vector下标越界,而 比较令人疑惑的是,我并没有使用std::vector。继续 使用VS2013进行调试发现错误原因为:
std::vector<std::vector<itk::ConnectedComponentImageFilter<itk::Image<unsigned char,2>,itk::Image<unsigned short,2>,itk::Image<unsigned char,2> >::runLength,std::allocator<itk::ConnectedComponentImageFilter<itk::Image<unsigned char,2>,itk::Image<unsigned short,2>,itk::Image<unsigned char,2> >::runLength> >,std::allocator<std::vector<itk::ConnectedComponentImageFilter<itk::Image<unsigned char,2>,itk::Image<unsigned short,2>,itk::Image<unsigned char,2> >::runLength,std::allocator<itk::ConnectedComponentImageFilter<itk::Image<unsigned char,2>,itk::Image<unsigned short,2>,itk::Image<unsigned char,2> >::runLength> > > >::operator[](unsigned __int64 _Pos) 行 1202C++
也即是说itkConnectedComponentImageFilter里面使用了std::vector,并且产生了下标越界。
2 解决方法
最好的方法就是不要使用itkConnectedComponentImageFilter,而改用其它方法生成Label Image:
//![0] -- UCharImageTypetypedef unsigned char UCharPixelType;typedef itk::Image<UCharPixelType, 2> ImageType;typedef ImageType itkImageData;typedef ImageType UCharImageType;// [0]//![1] -- UShortImageTypetypedef unsigned short UShortPixelType;typedef itk::Image<UShortPixelType, 2> UShortImageType;// [1]typedef itk::BinaryImageToLabelMapFilter<UCharImageType> BinaryImageToLabelMapFilterType;typedef itk::LabelMapToLabelImageFilter <BinaryImageToLabelMapFilterType::OutputImageType, UShortImageType> LabelMapToLabelImageFilterType;BinaryImageToLabelMapFilterType::Pointer binary2Label = BinaryImageToLabelMapFilterType::New();LabelMapToLabelImageFilterType::Pointer labelMap2LabelImage = LabelMapToLabelImageFilterType::New();binary2Label->SetInput( image ); // image的类型是itkImageData,在上面有定义,此处略去imagebinary2Label->Update(); // 的产生方法labelMap2LabelImage->SetInput( binary2Label->GetOutput() );labelMap2LabelImage->UpdateLargestPossibleRegion();labelMap2LabelImage->Update();
0 0
- itkConnectedComponentImageFilter对输入图像大小的限制
- 限制输入框的大小
- 对文本框的输入限制
- js对输入用户名的限制
- H.265/HEVC 中对LCU/CTU的大小限制
- mysql对表列数和行大小的限制
- Java 文本框输入数字限制以及输入数字大小限制
- android edittext限制输入小数位数,限制输入数字大小
- 用js实现对text 输入框的限制
- html 表单设计时对输入文本数据类型的限制
- UITextField对中英文混合输入的长度限制
- 【学生信息管理系统】对输入框-TextBox的限制
- 实现对UITextField ,UITextView等输入框的 字数限制
- JS 对输入框进行限制(常用的都有)
- 学习记录-对Qt的QLineEdit进行输入字符限制
- JS 对输入框进行限制(常用的都有)
- UITextField中文输入法输入时对字符长度的限制
- 限制上传大小的
- jdk tomcat solr mmseg4j linux centos 安装
- Quartz 2D 简单应用【打水印】&&【图片裁剪】&&【屏幕截图】
- java线程的创建
- 数据库的scehma是什么
- 编译内核模块的的Makefile的讲解
- itkConnectedComponentImageFilter对输入图像大小的限制
- extjs操作dom
- WebLogic启动Node Manager报错:Invalid state file format. State file contents
- swagger php 用法
- iOS 真机测试错误解决"An App ID with Identifier ...is not available"
- GitHub 使用教程图文详解
- C语言学习之预编译第一讲
- PostgreSQL与操作系统(OS)内核相关的几个参数
- Effective C++(条款32-34)