2014-01-23 6 views
0

Я новичок в VB.net, но я должен сделать это для нашего проекта. Я сделал очень простую программу для вызова функций matlab, которые я создал в vb.net. Эта программа проста, она просто определит ширину и высоту изображения в окне изображения.Использование функций MATLAB в vb.net

Вот мой MATLAB код и скомпилирован с помощью сборки .NET экспортировать DLL-файлы:

function [width, height, third] = imageInfo(input) 
inImage = imread(input); 
[width, height, third] = size(inImage); 
end 

Вот GUI моей программы:

enter image description here

И вот В.Б код, который я сделал:

Imports MathWorks.MATLAB.NET.Arrays 
Imports MathWorks.MATLAB.NET.Utility 
Imports imageInfo 

Public Class Form1 
    Public myImageInfo As New imageInfoClass 

    Dim imageWidth As String 
    Dim imageHeight As String 
    Dim result As New MWNumericArray 
    Dim imagePath As String 

    Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click 
     If ofdSelectPicture.ShowDialog = DialogResult.OK Then 
      pbImage.Image = Image.FromFile(ofdSelectPicture.FileName) 
      imagePath = "'" & ofdSelectPicture.FileName & "'" 
     End If 
    End Sub 

    Private Sub btnProcess_Click(sender As Object, e As EventArgs) Handles btnProcess.Click 
     result = myImageInfo.imageInfo(imagePath) 
     tbHeight.Text = imageHeight 
     tbWidth.Text = imageWidth 
    End Sub 
End Class 

У меня всегда была ошибка, когда r unning программы. Надеюсь, ты поможешь мне с этим. Спасибо

+0

Это действительно поможет, если вы могли бы сказать, какой тип ошибки вы получаете. Это исключение? Есть ли у него сообщение? Когда вы получите эту ошибку? – MPelletier

+0

Вот скриншот об ошибке: http://imagizer.imageshack.us/v2/800x600q90/819/yruy.jpg У меня ошибка, когда я запускаю программу. – elvinguitar

ответ

0

Эта часть здесь:

result = myImageInfo.imageInfo(imagePath) 

imagePath должен быть полный путь. Вы раздеть его и добавить запятые

imagePath = "'" & ofdSelectPicture.FileName & "'" 

Вы можете попробовать:

imagePath = ofdSelectPicture.SafeFileName 
+0

'imread' нуждается в полном пути имени файла (если изображение не находится в текущем каталоге или не доступно на пути MATLAB), но вам не нужно обертывать его в одинарные кавычки. Класс моста 'MWArray' заботится о преобразовании строк .NET в строки MATLAB. Так что я думаю, что 'ImagePath = ofdSelectPicture.FileName' должен работать .. – Amro

+0

я все еще получаю ошибку: Необработанное исключение типа«System.InvalidOperationException»произошло в Image Info.exe Дополнительная информация: Ошибка при создании формы , Подробнее см. Exception.InnerException. Ошибка: инициализатор типа для «imageInfo.imageInfoClass» сделал исключение. – elvinguitar

+0

@elvinguitar Вы знаете, как использовать отладчик? Это очень поможет вам. Вы можете поместить точку останова на строку 'result = myImageInfo.imageInfo (imagePath)', которая заставит отладчик остановиться до выполнения этой строки. Затем вы можете увидеть значение 'imagePath'). – MPelletier

 Смежные вопросы

  • Нет связанных вопросов^_^