解决了这个
基于一个堆栈帖子,我包括了以下几行代码来加载库。
static{ String osName = System.getProperty("os.name"); String opencvpath = System.getProperty("user.dir"); if(osName.startsWith("Windows")) { int bitness = Integer.parseInt(System.getProperty("sun.arch.data.model")); if(bitness == 32) { opencvpath=opencvpath+"\opencv\x86\"; } else if (bitness == 64) { opencvpath=opencvpath+"\opencv\x64\"; } else { opencvpath=opencvpath+"\opencv\x86\"; } } else if(osName.equals("Mac OS X")){ opencvpath = opencvpath+"Your path to .dylib"; } System.out.println(opencvpath); System.load(opencvpath + Core.NATIVE_LIBRARY_NAME + ".dll"); //nu.pattern.OpenCV.loadShared(); //System.loadLibrary(org.opencv.core.Core.NATIVE_LIBRARY_NAME); }
在检查各种参数时,发现os.name返回了WINDOWS。user.dir返回eclipse根目录,sun.arch.data.model返回64。然后,根据此代码,我在eclipse根目录中创建必要的文件夹,并将最新的opencv
dll粘贴在该目录中。但是现在另一个问题是代码正在搜索dll的较旧版本,并且不接受该较新版本。
问题是由于以下事实:内置库正在使用旧版本的opencv,而我正在尝试使用最新版本。因此,我不得不从该库和tada的maven依赖项中排除opencv的先前版本,从而解决了问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)