为了在java中调用一个matlab方法,我做了一个代码草图如下:
Process proc;
try {
// Run the process
proc = Runtime.getRuntime().exec(
new String[]{
"matlab -nosplash -nodesktop -r run("C:\Users\felip\Desktop\Projetos\...\teste.m"),
caminho.concat("sem_reflexo.jpg"),
caminho.concat("edge.jpg"),
caminho.concat("labels.pgm"),
caminho.concat("borders.pgm")"
}
);
proc.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
对于上面的代码,我打算将作为参数传递给 Matlab 方法,来自 Java 程序的输入是图像分割方法的参数。这些参数是动态的,在程序读取图像目录时,图像会一张一张地变化,直到全部读取完毕。
具有串联字符串传递参数的caminho.concat
功能,在同一行,根据每个文件夹中的图像变化等等。但是,考虑到 test.m 字符串的构造并传递其参数,我不知道这是否是最好的方法。简而言之,我对如何进行整合感到困惑。
我在 Matlab 中做了一个代码草图,这样我就可以调用脚本来传递必要的参数,但我不确定,因为我没有太多的语言经验。以下是matlab脚本:
function sh = SuperpixelHierarchy(image, edge, edge_weight, compactness, labels, borders)
arguments
image
edge
edge_weight
compactness
labels
borders
end
sh = SuperpixelHierarchyMex(image, edge, edge_weight, compactness);
imgdir = dir(fullfile(image,'*.jpg'));
imgname = {imgdir.name};
imwrite(sh.label, borders);
color1 = MeanColor(double(image), sh.label);
imwrite(sh.label, labels);
fusion = imfuse(color1, sh.label,'ColoChannels', [R G B]);
imwrite(fusion, imgname+"SUPERPIXELS_LABELS.jpg");
end
我想从用 Matlab 编写的称为 Superpixels Hierarchy (SH) 的方法中提取超像素。因此,我需要使用输入参数来计算这些超像素,并将此方法的输出用作 Java 程序下一阶段的输入...
您能否帮助我构建字符串并理解这种用于提取超像素作为我的程序的集成?既然我谢谢你。