首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Simple- C#的ITK安装教程

Simple- C#的ITK安装教程
EN

Stack Overflow用户
提问于 2012-05-31 09:48:27
回答 1查看 2.7K关注 0票数 2

我以前在c++中使用过ITK,现在我正在尝试在c#中使用简单的itk。我已经看过MICCAI2011教程,我正在试着开始。我使用的是Windows 7 64位计算机和Visual Studio Ultimate 2010。根据this wiki的说法,我应该能够将.dlls解压并引用到我的项目中,它应该可以工作。我可以将SimpleITKCSharpManaged.dll添加到我的推荐人中。但是,我无法将SimpleITKCSharpNative.dll添加到我的引用中。它给我一个错误:请确保文件是可访问的,并且它是有效的程序集或COM组件。

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

代码语言:javascript
复制
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的情况下启动并运行它,有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 08:48:28

ITK的丹·米勒回答了我的问题。以下是他不得不说的话:

你好费德里科,

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

当.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

干杯,丹

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10826487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档