Я установил последнюю версию OpenCVSharp 2 (2.4.10.201...) с менеджером NuGet в своем проекте. Все, что касается OpenCVSharp.CvMat, работает нормально (загрузка, манипуляции и т. д.), поэтому я уверен, что установка выполнена правильно.
Однако я вообще не могу использовать OpenCVSharp.CPlusPlus! Я пытаюсь просто создать мат, но безрезультатно:
using OpenCvSharp;
using OpenCvSharp.CPlusPlus;
using MyCVSharp;
using System.Diagnostics;
using System.Collections;
class MainClass
{
static void Main()
{
Mat test3 = new Mat( new Size( 100, 100 ), MatType.CV_8UC1 ); // ERROR
Mat test2 = new Mat( "f1.png", LoadMode.Color ); // ERROR
CvMat test = new CvMat( "f1.png", LoadMode.Color ); //; THIS WORKS
Ошибка:
Произошло необработанное исключение типа «System.TypeInitializationException» в MyCVSharpTEST.exe.
Дополнительная информация: Инициализатор типа для OpenCvSharp.CPlusPlus.Mat вызвал исключение.
Вместе с моим проектом развернуто множество DLL. OpenCvSharp.CPlusPlus.dll и OpenCvSharp.dll развернуты в одной папке рядом с MyCVSharpTEST.exe, а папка dll создается с подпапками x86 и x64, содержащими еще 22 связанные dll, каждая.
Я даже пытался создать мат из уже созданного CvMat, но все равно та же ошибка.
Редактировать: Ошибка, показанная в блоке try-catch:
System.TypeInitializationException: The type initializer for 'OpenCvSharp.CPlusPlus.Mat' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at OpenCvSharp.CPlusPlus.NativeMethods.core_Mat_sizeof()
at OpenCvSharp.CPlusPlus.Mat..cctor()
--- End of inner exception stack trace ---
at OpenCvSharp.CPlusPlus.Mat..ctor()
at MainClass.Main() in C:\Users\kotsias\Documents\Visual Studio 2015\Projects\MyCVSharp\ConsoleApplication1\Test.cs:line 14
Поскольку проблема теперь кажется связанной с dll, я решил написать совершенно новый вопрос об этом а>.
new Mat()
блоком try-catch, затем запустить приложение с подключенным отладчиком и вручную проверить свойствоException.InnerException
. Проверьте Что такое внутреннее исключение? обсуждение, try-catch Справочник по C# и Управление исключениями с помощью отладчика на странице MSDN. - person Leonid Vasilev   schedule 20.05.2017