Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过shell脚本在Java程序中从计算机读取图像文件_Java_Linux_Image_Shell - Fatal编程技术网

通过shell脚本在Java程序中从计算机读取图像文件

通过shell脚本在Java程序中从计算机读取图像文件,java,linux,image,shell,Java,Linux,Image,Shell,我有一个Java程序,可以读取图像文件.jpg、.bmp、.png,并使用聚类算法在该文件上创建索引。但问题是,每次我都必须明确给出要编制索引的图像文件的名称。我想要的是一个代码,它将自动扫描我的Linux系统中存在的所有图像并为它们编制索引。我发现可以通过shell脚本实现,但仍然没有得到它。据我所知,您希望通过java程序执行一个*.sh脚本,该程序反过来循环遍历文件夹中的一些文件 你有没有试过这样的方法: public void runCmd() throws IOException, I

我有一个Java程序,可以读取图像文件.jpg、.bmp、.png,并使用聚类算法在该文件上创建索引。但问题是,每次我都必须明确给出要编制索引的图像文件的名称。我想要的是一个代码,它将自动扫描我的Linux系统中存在的所有图像并为它们编制索引。我发现可以通过shell脚本实现,但仍然没有得到它。

据我所知,您希望通过java程序执行一个*.sh脚本,该程序反过来循环遍历文件夹中的一些文件

你有没有试过这样的方法:

public void runCmd() throws IOException, InterruptedException {
    String cmd = "/home_dir/./my_shell_script.sh";
    Runtime run = Runtime.getRuntime();
    Process pr = run.exec(cmd);
    pr.waitFor();
}

这只提供了一个粗略的想法,您需要做什么,但您可以使用find获得要点,并将其输出传送到您的程序:

find \( -name "*.jpg" -or -name "*.png" \) -printf "%h/%f\n" | java YourProgram
并从stdin读取文件名,包括路径,假设其中没有包含换行符

对于整个文件系统,您可以从根目录开始:

find / ...

更好的解决方案是,以平台无关的方式从程序中搜索文件,并且只给它一个起始路径,这并不难实现,您只需要对文件类型jpg、png、bmp应用一个过滤器。

post脚本代码和java应用程序的参数-如何调用它?您想做什么?让shell多次调用您的程序并显示系统的所有映像,或者让Java程序扫描您的磁盘并自行查找所有映像?到目前为止,你尝试了什么?请考虑编辑你的问题,包括你所说的图像文件的示例,创建的索引的样本,或者至少两种描述的非一般性描述。然后,我们需要查看一些示例,说明您的数据将如何因处理而改变。最后,您应该包括到目前为止您已经尝试过的一些代码。所有这些都应该整齐地放在屏幕上大约50行以内。现在,我不知道你指的是Windows磁盘映像或tif/jpeg映像中的映像文件还是???。你指的是文件内内容的索引,还是仅仅指文件名。祝你好运。图像包括.jpg、.bmp或.png文件。我想让我的java程序扫描磁盘,自己找到硬盘上的所有图像。。。。。。索引是通过使用图像像素的R、G、B值来完成的,将颜色相似的像素组合在一起……使用NBS颜色距离公式回答评论并不能真正帮助您获得最大数量的相关用户来回答您的问题。如上所述,请考虑编辑你的问题,因此它是你的问题的逻辑呈现。不要让我们花时间帮助您定义问题,这不是StackOverflow支持的编程。祝你好运。但这只适用于我分配给cmd字符串的文件夹路径……如果我想从整个文件系统中读取图像怎么办?你可以通过将参数添加到cmd字符串来向脚本传递参数,就像在shell中一样。如果您为脚本提供一个文件,它将适用于文件系统中的任何文件