【问题标题】:Exception when execute update() of an itk::writertype执行 itk::writertype 的 update() 时出现异常
【发布时间】:2011-09-14 08:41:31
【问题描述】:

我在“itk::image::Pointer salida”中有一个图像。我已经检查过它是否具有正确的像素值。我想将图像保存到文件中,但在最后一行,它给了我一个异常,现在我不知道该怎么办:

// Saving the result into a file
salida = ui.imageframe->imagereader;
writer = itk::ImageFileWriter<ImageType>::New(); 
writer->SetInput( salida ) ; 
writer->SetFileName ( "output.jpeg");
writer->Update();// ---> EXCEPTION!!

xmtx.c 文件异常(mutex[mutual exclude] 支持 VC++), 它转到这部分代码的最后一行:

_RELIABILITY_CONTRACT
void  __CLRCALL_PURE_OR_CDECL _Mtxlock(_Rmtx *_Mtx)
{   /* lock mutex */
#ifdef _M_CEE
System::Threading::Thread::BeginThreadAffinity();
#endif
EnterCriticalSection(_Mtx);
}

你们中有人遇到过同样的问题吗?任何修复它的提示?

提前致谢

安东尼奥·戈麦斯·巴克罗

【问题讨论】:

  • 抛出什么样的异常?它的内部信息说什么? (例如std::exceptionswhat()函数)
  • prueba_r01.exe 中 0x7c812aeb 中的第一个异常:Microsoft C++ 异常:itk:ExceptionObject in the memory ubication 0x7c812aeb prueba_r01.exe 中 0x7c812aeb 中的第一个异常:Microsoft C++ 异常 [rethrow]:itk:ExceptionObject 在memory ubication 0x7c812aeb prueba_r01.exe 中 0x7c812aeb 中的第一个异常:Microsoft C++ 异常 [rethrow]:itk:ExceptionObject in the memory ubication 0x7c812aeb。
  • Qt 捕捉到了从事件处理程序抛出的异常。 Qt 不支持从事件处理程序中抛出异常。您必须重新实现 QApplication::notify() 并在那里捕获所有异常。

标签: c++ visual-studio-2008 qt exception-handling itk


【解决方案1】:

尝试捕获异常并查看它包含的内容。我不熟悉 itk 但查看 API,以下应该可以工作:

try
{
    writer->Update();
}
catch( itk::ExceptionObject& ex )
{
    qDebug() << ex.what();
}

这应该会引导您找到异常的来源。

【讨论】:

  • 非常感谢,上面写着:“itk::ERROR: JPEGImageIO(01234120): JPEG support unsigned char/int only
猜你喜欢
  • 2016-03-31
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 2016-10-03
  • 2020-02-21
相关资源
最近更新 更多