自从我使用Java已有很长时间了,而且我以前从未使用过参数。我也是
使用OpenCV模板匹配。我正在关注this example。您可以根据需要查看链接。我认为没有必要复制并复制整个内容。
当我运行项目时,它会打印出来;
Not enough parameters
Program arguments:
<image_name> <template_name> [<mask_name>]
因此,该程序至少需要2个参数:源文件和模板图像文件。但是我不知道如何将文件传递给程序。是否需要文件路径或文件本身?
这是方法:
public void run(String[] args) {
if (args.length < 2) {
System.out.println("Not enough parameters");
System.out.println("Program arguments:\n<image_name> <template_name> [<mask_name>]");
System.exit(-1);
}
img = Imgcodecs.imread(args[0], Imgcodecs.IMREAD_COLOR);
templ = Imgcodecs.imread(args[1], Imgcodecs.IMREAD_COLOR);
if (args.length > 2) {
use_mask = true;
mask = Imgcodecs.imread(args[2], Imgcodecs.IMREAD_COLOR);
}
if (img.empty() || templ.empty() || (use_mask && mask.empty())) {
System.out.println("Can't read one of the images");
System.exit(-1);
}
matchingMethod();
createJFrame();
}
这是主要方法:
public class MatchTemplateDemo {
public static void main(String[] args) {
// load the native OpenCV library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// run code
new MatchTemplateDemoRun().run(args);
}
}
最佳答案
是的,您需要传递文件路径。如果从命令提示符处运行它,它将看起来像这样:
java MatchTemplateDemo "C:/.../Image.png" "C:/.../Template.png"
如果使用的是IDE,则可以使用以下链接来运行带有参数的程序: