我希望任何人都可以帮助我解决这个任务。我正在处理一些图像分类并尝试将 OpenCv 3.2.0 和 DL4J 结合起来。我知道DL4J也包含Opencv,但我认为它没什么用。
谁能帮我,如何转换成 INDArray ?
我尝试阅读一些问题here https://github.com/deeplearning4j/dl4j-examples/issues/351DL4J 的 NativeImageLoader 类提供了 asMatrix(Mat image) 方法。
但是当我尝试运行它时出现错误
java:找不到asMatrix(org.opencv.core.Mat)合适的方法
我不知道如何修复我的代码,或者我的代码可能有问题。谁能帮我找出问题所在?
顺便说一句,这是我的代码:
Mat imgMat = Imgcodecs.imread("C:\\Pictures\\image.jpg");
INDArray image = loader.asMatrix(imgMat);
感谢您的关注。
DL4J不包括OpenCV本机库,因为该库必须位于JAVA_HOME目录或其他位置,您可以在其中精确编写代码。如果您想使用DL4J中包含的opencv功能,您必须首先下载您所使用的DL4J版本中包含的opencv版本。
下载opencv库后,opencv本机库位于
-
opencv/build/java/x64/opencv_javaVERSION_OF_OPENCV.dll对于 64 位架构或
-
opencv/build/java/x86/opencv_javaVERSION_OF_OPENCV.dll适用于 32 位架构。
- 您可以复制 java home 中的本机库并在代码中执行此操作:
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat imgMat = Imgcodecs.imread("C:\\Pictures\\image.jpg");
INDArray image = loader.asMatrix(imgMat);
- 或者你可以使用这种方法,这是最好的
System.load("PATH/opencv_javaOPENCV_VERSION.dll");
Mat imgMat = Imgcodecs.imread("C:\\Pictures\\image.jpg");
INDArray image = loader.asMatrix(imgMat);
PATH是找到库的路径OPENCV_版本是你使用的opencv版本。
您可以在其他基于的java项目中采用相同的方法opencv
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)