Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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/9/opencv/3.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
Java OpenCV库已加载到hadoop中,但不起作用_Java_Opencv_Hadoop_Java.library.path_Hadoop Native Library - Fatal编程技术网

Java OpenCV库已加载到hadoop中,但不起作用

Java OpenCV库已加载到hadoop中,但不起作用,java,opencv,hadoop,java.library.path,hadoop-native-library,Java,Opencv,Hadoop,Java.library.path,Hadoop Native Library,我正在尝试将OpenCV与Hadoop结合使用。下面是我的代码。我只是在测试OpenCV库是否可以与Hadoop配合使用,即在函数中运行OpenCV代码时 Hadoop的公共int-run(String[]args) 我在互联网上搜索,找到了一些如何在Hadoop中添加OpenCV本机库(libopencv_java310.so)的方法。我试过一些方法,但没有成功。比如说 它说将JAVA.LIBRARY.PATH添加到hadoop config.sh文件中。 但它不起作用。我犯了这个错误 Exc

我正在尝试将OpenCV与Hadoop结合使用。下面是我的代码。我只是在测试OpenCV库是否可以与Hadoop配合使用,即在函数中运行OpenCV代码时 Hadoop的公共int-run(String[]args)

我在互联网上搜索,找到了一些如何在Hadoop中添加OpenCV本机库(
libopencv_java310.so
)的方法。我试过一些方法,但没有成功。比如说

它说将
JAVA.LIBRARY.PATH
添加到
hadoop config.sh
文件中。 但它不起作用。我犯了这个错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
at line
System.loadLibrary(Core.NATIVE.LIBRARY.NAME);
最后,我将OpenCV本机库(
libopencv_java310.so
)添加到此路径(从internet获得解决方案)

这似乎奏效了。我没有得到上面的错误。 但我在下一行得到了这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_1(Ljava/lang/String;)
此错误位于第行:

CascadeClassifier cad = new CascadeClassifier();
据我所知,如果未加载OpenCV本机库,则会出现此错误。但是现在库已经加载,我不知道这个错误的原因是什么

public int run(字符串[]args)引发异常{
Configuration conf=新配置();
Job Job=Job.getInstance(conf);
job.setJarByClass(readVideoFile.class);
setJobName(“smallfilestoseqfile”);
setInputFormatClass(readVideoInputFormat.class);
作业。setNumReduceTasks(1);
setInputPaths(作业,新路径(args[0]);
setOutputPath(作业,新路径(args[1]);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
setMapperClass(readVideoMapper.class);
System.loadLibrary(Core.NATIVE\u LIBRARY\u NAME);
级联分类器cad=新级联分类器();
返回作业。waitForCompletion(true)?0:1;
}

我也面临同样的问题。我使用了以下变通方法

您可以从使用JavaCV工具开始,因为它与hadoop完美配合。
然后使用OpenCv,通过将所有OpenCv库和jar包装在可执行jar中来创建一个可执行jar。现在本机库由操作系统加载。因此,在可执行jar文件中,编写将OpenCv本机库提取到Temple pry文件的代码,然后加载库,最后删除临时文件。

不要在方法中加载库,而是在静态初始值设定项中加载库<代码>未满足链接错误如果尝试多次加载库,也会抛出。为什么不使用?有一些特定的方法,只有在OpenCv中才有。使用HIPI是另一回事。谢谢你的答复。。
CascadeClassifier cad = new CascadeClassifier();