Хотя 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 в Visual Studio. Я знаю, что это может быть неприятно, особенно для новичков. Если вы хотите, я буду рад помочь вам настроить его должным образом. Причина, по которой я спрашиваю, заключается в том, что, поскольку вы предоставляете это конечному пользователю, ваш код может быть более эффективным без вызова IronPython. Тем более, что каждый процесс потребует чтения и записи с жесткого диска.
Для начала: я предполагаю, что вы включили в свой проект ссылки на Emgu.CV, Emgu.CV.UI и EMGU.Util. Но важно, чтобы вы добавили файлы «opencv_core220.dll», «opencv_imgproc220.dll» непосредственно в свой проект и убедились, что в окне свойств для параметра «Копировать в вывод» установлено значение «Копировать всегда». Если это не так, вы получите ошибки, связанные с отсутствием изображения в правильном формате и т. д. Вам действительно нужны только эти две .dll для чтения изображений и доступа к данным и т. д., вам могут понадобиться другие, например, для фильмов .avi. Обратите внимание, что эти две .dll теперь должны распространяться вместе с вашим проектом, чтобы он работал.
Обратите внимание, что это может измениться в зависимости от того, используете ли вы 64-битную машину или 32-битную машину, но 64-битная версия EMGU не будет работать на машинах X86. Вы также должны убедиться, что ваша целевая платформа указана правильно в Visual Studio.
Я надеюсь, это поможет вам,
Ура Крис
person
Chris
schedule
19.08.2011