我是Java开发人员。我正在从事一个涉及车牌提取的项目。它涉及三个步骤:首先将图像转换为灰度,然后使用Canny Edge Detection算法检测图像中的边缘,第三步是将图像传递到Matlab编译代码,该代码从图像中提取车牌。前两个步骤成功。第三步,当我将图像传递给Matlab编译的.exe应用程序时,它给了我错误:运行时错误'5':无效的过程调用或参数。
以下是我用于将图像传递到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);
}
最佳答案
我认为问题与将参数传递给可执行文件的方式有关。如果将可执行文件名称和参数放在数组中,则可能会有所帮助。这是相关的讨论,ProcessBuilder vs Runtime.exec()。另外,您可以尝试使用ProcessBuilder。