Хотя IronPython не является моим опытом, я хорошо разбираюсь в EMGU и его приложениях. Если вы настаиваете на использовании IronPython, на следующем веб-сайте четко показано, как передать строку в класс IronPython.
Следующий код взят из ссылки и не мой:
Option Explicit On
Option Strict On
Imports Microsoft.Scripting.Hosting
Imports IronPython.Hosting
Imports IronPython.Runtime.Types
Module Module1
Sub Main()
Dim helloWorld As New HelloWorldVB()
Console.WriteLine(helloWorld.HelloWorld("Maurice"))
Dim runtime As ScriptRuntime = PythonEngine.CurrentEngine.Runtime
Dim scope As ScriptScope = runtime.ExecuteFile("HelloWorld.py")
Dim pythonType As PythonType = scope.GetVariable(Of PythonType)("HelloWorldIronPython")
helloWorld = CType(runtime.Operations.Call(pythonType), HelloWorldVB)
Console.WriteLine(helloWorld.HelloWorld("Maurice"))
Console.ReadLine()
End Sub
End Module
Я бы следовал руководству по ссылке, но важный код приведен ниже, поскольку он импортирует требуемую информацию времени выполнения для IronPython:
**Imports Microsoft.Scripting.Hosting
Imports IronPython.Hosting
Imports IronPython.Runtime.Types**
&
**Dim runtime As ScriptRuntime = PythonEngine.CurrentEngine.Runtime
Dim scope As ScriptScope = runtime.ExecuteFile("HelloWorld.py")
Dim pythonType As PythonType = scope.GetVariable(Of PythonType)("HelloWorldIronPython")
helloWorld = CType(runtime.Operations.Call(pythonType), HelloWorldVB)
Console.WriteLine(helloWorld.HelloWorld("Maurice"))**
Очевидно, Console.WriteLine (helloWorld.HelloWorld ("Морис")) будет исправлен на:
Dim result_location As String = helloWorld.HelloWorld ("Морис")
Где "Морис" будет строкой, содержащей местоположение вашего изображения.
Теперь я должен спросить о проблемах, которые у вас возникали при настройке EMGU в визуальной студии. Я знаю, что это может быть неприятно, особенно если вы новичок в этом. Если вы хотите, я был бы рад помочь вам настроить его правильно. Я спрашиваю, потому что, поскольку вы предоставляете это конечному пользователю, ваш код может быть более эффективным без вызова IronPython. Тем более что каждый процесс потребует чтения и записи с жесткого диска.
Для начала: я предполагаю, что вы включили ссылки на Emgu.CV, Emgu.CV.UI и EMGU.Util в ваш проект. Но важно, чтобы вы добавили файлы «opencv_core220.dll», «opencv_imgproc220.dll» непосредственно в ваш проект и в окне свойств убедились, что для параметра «Копировать в вывод» задано значение «Копировать всегда». Если это не так, вы получите ошибки, связанные с отсутствием изображения в нужном формате и т. Д. Вам действительно нужны эти два .dll для чтения изображений и доступа к данным и т. Д., Вам могут понадобиться другие, например, для фильмов .avi. Обратите внимание, что эти два .dll должны теперь распространяться вместе с вашим проектом, чтобы он работал.
Заметьте, что это может измениться в зависимости от того, используете ли вы 64-битную или 32-битную машину, но 64-битная версия EMGU не будет работать на машинах X86. Вы также должны убедиться, что ваша целевая платформа верна в Visual Studio.
Надеюсь, это вам поможет,
Приветствие
Chris