【问题标题】:Simple-ITK installation Tutorial for C#Simple-ITK C# 安装教程
【发布时间】:2012-06-19 08:48:27
【问题描述】:

我之前在 C++ 中使用过 ITK,现在我正在尝试在 C# 中使用简单的 itk。我查看了 MICCAI 2011 教程,我正在尝试开始。我使用的是 Windows 7 64 位机器和 Visual Studio Ultimate 2010。 根据this wiki,我应该能够解压缩并将.dlls 引用到我的项目中,它应该可以工作。 我可以将 SimpleITKCSharpManaged.dll 添加到我的参考资料中。但是我无法将 SimpleITKCSharpNative.dll 添加到我的引用中。它给了我错误: 请确保该文件是可访问的,并且它是一个有效的程序集或 COM 组件。

然后我尝试运行一个简单的控制台应用程序

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using itk.simple;

namespace TestSimpleItk
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputFilename = "001.png";
            if (File.Exists(inputFilename))
            {
                try
                {
                    var input = SimpleITK.ReadImage(inputFilename);
                    var binary = SimpleITK.BinaryThreshold(input, 100, 255, 255, 0);
                    SimpleITK.WriteImage(binary, "cthead1-binary.png");
                }
                catch (Exception ex)
                { 
                    Console.WriteLine("{0}", ex);
                }

            }
            else
            {
                Console.WriteLine("File '{0}' does not exist", inputFilename);
            }
        }
    }
}

抛出的异常是: {“'itk.simple.SimpleITKPINVOKE' 的类型初始化器抛出异常。”} 内部例外是: {“试图加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)”}

我尝试将 SimpleITKCSharpNative.dll 复制到我的 bin/debug 目录,但仍然遇到同样的错误。

关于如何解决这个问题,或者如何在不使用 CMAKE 从源代码本地构建它的情况下启动并运行 SimpleItk 的任何想法?

谢谢

【问题讨论】:

    标签: c# itk


    【解决方案1】:

    来自 ITK 的 Dan Mueller 回答了我的问题。这是他不得不说的:

    嗨,费德里科,

    您收到的错误提示: “试图加载格式不正确的程序。”

    当 .NET 程序尝试访问 使用不同架构构建的 dll;例如见 这里: http://blogs.msdn.com/b/arvindsh/archive/2009/06/21/tip-of-the-day-an-attempt-was-made-to-load-a-program-with-an-incorrect-format-net-p-invoke-issue.aspx

    解决此问题的最简单方法是使用相同的建筑设置 作为 SimpleITK。例如,如果您下载了 “SimpleITK-0.4.0-CSharp-Win64-anycpu.zip”然后你的调用程序 应该使用 x64 AnyCPU 设置构建。如果你下载了 “SimpleITK-0.4.0-CSharp-Win32-x86.zip”你应该使用 x86 Win32 设置。

    要回答您的其他问题:您只需添加 “SimpleITKCSharpManaged.dll”到您的程序引用,但 “SimpleITKCSharpNative.dll”必须在探测路径中(最简单的方法 实现这一点的方法是将它放在您旁边的二进制目录中 程序可执行文件和托管 dll)。这在 下一页(此页面适用于 Linux,但相同的方法是 Windows 也需要): http://www.itk.org/Wiki/ITK/Release_4/SimpleITK/GettingStarted/Visual_guide_to_building_on_Linux#A_simple_C.23_program

    请告诉我们您的进展情况。

    HTH

    干杯,丹

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多