自从我使用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,则可以使用以下链接来运行带有参数的程序:
  • Eclipse:Eclipse command line arguments
  • IntelliJ IDEA:How do you input commandline argument in IntelliJ IDEA?
  • NetBeans:Netbeans how to set command line arguments in Java
  • 10-07 19:03
    查看更多