2012-05-31 22 views
1

Я работаю разработчиком java. Я работаю над проектом, который включает извлечение номерных знаков автомобиля. В нем задействованы три шага: первое преобразование изображения в шкалу серого, а затем обнаружение краев изображения с использованием алгоритма обнаружения Canny Edge, третье - передача изображения в скомпилированный код matlab, который извлекает номерную табличку из изображения. Первые два шага успешны. На третьем этапе, когда я передаю изображение в приложение, написанное в Matlab .exe, он дает мне ошибку: Runtime erro '5': неверный вызов или аргумент процедуры.Запуск matlab скомпилированный код от java

Ниже код, который я использую для передачи изображения для MatLab скомпилированного приложения:

Process p = null; 
     try { 
      // TODO add your handling code here: 
      p = Runtime.getRuntime() 
         .exec("c:/ImageResources/enp c:/ImageResources/edges.jpg"); 
     } catch (IOException ex) { 
      Logger.getLogger(MatlabGUIForm.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     System.out.println("Debug "); 
     try { 
      p.waitFor(); 
     } catch (InterruptedException ex) { 
      Logger.getLogger(MatlabGUIForm.class.getName()).log(Level.SEVERE, null, ex); 
     } 
+0

Возможно, у вас нет подходящего времени исполнения компилятора Matlab? Также, как вы разрабатываете в Java - не было бы проще, если вы используете Matlab Builder для Java и создаете класс? – bdecaf

ответ

0

Я думаю, что проблема связана с тем, как вы передаете аргумент к исполняемому файлу. Если вы введете имя исполняемого файла и аргумент в массив, это может помочь. Вот связанное обсуждение, ProcessBuilder vs Runtime.exec(). Кроме того, вы можете попробовать ProcessBuilder.

+0

Извините за поздний ответ. Я попытался поставить исполняемое имя и аргументы в массив, но это не решило мою проблему. –

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