我希望任何人都能帮我解决这个问题。我正在研究一些图像分类,并试图将OpenCv 3.2.0和DL4J结合起来。我知道DL4J也包含了Opencv,但我认为它是无用的。
有人能帮我吗,如何转换成INDArray?我试着阅读了一些问题这里和类NativeImageLoader提供了DL4J提供的方法,asMatrix(Mat映像)。但是当我试图运行它时,我发现了一个错误。
java:没有为asMatrix(org.opencv.core.Mat)找到合适的方法
我不知道如何修复我的代码,或者我的代码有问题。有人能帮我找出这个问题吗?
顺便说一下,这是我的代码:
Mat imgMat = Imgcodecs.imread("C:\\Pictures\\image.jpg");
INDArray image = loader.asMatrix(imgMat);感谢您的关注。
发布于 2021-11-03 16:51:08
DL4J不包括OpenCV本机库,因为库必须位于JAVA_HOME目录中,或者位于可以在代码中精确定位的其他位置。如果您想使用DL4J中包含的opencv特性,您必须首先下载包含在您正在使用的DL4J版本中的opencv版本。下载opencv库后,opencv本机库位于
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);OPENCV_VERSION是定位库的路径,路径是您使用的opencv版本。
您可以在基于opencv的其他java项目中采用相同的方法。
发布于 2017-08-01 03:32:21
你可以试试org.datavec.image.loader.NativeImageLoader
public INDArray asMatrix(Mat image)抛出IOException
https://stackoverflow.com/questions/45048041
复制相似问题