2012-06-06 4 views
1

OpenCV C++ 프로젝트로 이미지 인식 알고리즘을 구현했으며 C# 웹 서비스를 가지고 있습니다. C# Web 서비스에서 OpenCV 프로젝트를 호출하고 싶습니다. 이것은 내 프로젝트가 작동하는 방식입니다. 모바일에서 이미지를 C# 웹 서비스로 보냅니다. 그런 다음 Opencv C++ 프로젝트를 호출하여 이미지 인식을 수행해야합니다. DLL을 사용하여이 작업을 시도했습니다. DLL을 사용하는 것이 가장 좋은 방법이라고 생각하면 Opencv C++ projetc를 DLL로 변환하거나 다른 방법을 사용하는 방법을 알려주십시오. C# Web Service에서 C++ Oppencv 프로젝트를 호출하는 방법은 무엇입니까?

는 당신에게 당신이 당신의 일을 할 PInvoke를 사용해야한다고 생각

답변

1

대단히 감사합니다. 그것을 사용하지만, 내가 아는 것과,이 할 수있는 방법입니다하지 않은 :

http://msdn.microsoft.com/en-us/library/aa446536.aspx

+0

답장을 보내 주셔서 대단히 감사합니다. 핀볼을 사용하려면 DLL을 사용해야합니다.하지만 다시 문제는 내 opencv 프로젝트를 dll로 변환하는 방법을 모르겠습니다. 내 전체 프로젝트를 dll로 즉시 변환 할 수 있습니까? 내 opencv 프로젝트에 대한 변경없이. – JnG

+0

@JnG C++ 및 CV (일부 C# 및 Emgu CV)로 작업하지 않았습니다. 열린 CV로 일하는 친구에게이 링크를 보내고 질문에 대답 할 수 있습니다. –

+0

고맙습니다. – JnG

1

당신은 당신이 프로젝트의 영상 인식 부분을 기입하는 C++ DLL 프로젝트를 작성해야합니다. Visual Studio에서 C++ DLL 프로젝트를 만드는 방법에 대한 자습서를 확인하십시오. Walkthrough: Creating and Using a Dynamic Link Library

해당 DLL 파일에 클래스를 만들어야 이미지를 처리 ​​할 수 ​​있습니다. PInvoke를 사용하면 C# 프로젝트에서 해당 클래스를 사용할 수 있습니다. 다음은 C# 프로젝트의 DLL에서 C++ 클래스를 사용하는 방법에 대한 훌륭한 자습서입니다. How to Marshal a C++ Class. C#에서 C++ 코드를 호출하는 많은 프로젝트에서이 기사의 솔루션 A를 사용했습니다.

기존 C++ 프로젝트를 DLL로 변환하기 위해 출력 유형을 변경할 수 있습니다. Project-> Properties로 가셔서이 창에서 Configuration Properties-> General로 가서 Configuration type을 Dynamic Library (.dll)로 변경하십시오 : Project properties DLL

클래스 또는 DLL에서 내보낼 함수를 노출하십시오. 응용 프로그램 마법사 (AppWizard)가 몇 가지 코드를 작성하여 더 쉽게 사용할 수 있기 때문에 새 DLL 프로젝트 (첫 번째 접미사)를 시작하고 거기에서 작업하는 것이 좋습니다.

+0

고맙습니다. 잘 해보겠습니다. – JnG

관련 문제