【发布时间】:2013-12-31 07:20:43
【问题描述】:
我正在准备一个关于人脸识别的 java web 项目。我正在使用 opencv 2.4.7 的 java 库。当我从 servlet 调用 FaceDetector 类时,它给出了错误-
java.lang.UnsatisfiedLinkError:java.library.path 中没有 opencv_java247 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886) java.lang.Runtime.loadLibrary0(Runtime.java:849) java.lang.System.loadLibrary(System.java:1088) Models.NewFaceDetector.(NewFaceDetector.java:24) Servlets.helloServlet.doPost(helloServlet.java:108) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
此代码在控制台 java 项目中运行良好。 Servlet 代码是-
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
Part name=request.getPart("NameBox");
Part img=request.getPart("Img");
String filename=getFileName(img);
InputStream is=img.getInputStream();
int i=is.available();
byte[] b=new byte[i];
is.read(b);
String path="E:/temp/"+filename;
FileOutputStream os=new FileOutputStream(path);
os.write(b);
os.close();
is.close();
FaceDetector fd=new FaceDetector();
fd.getFaces(path);
}
我的面部检测器类是-
public class FaceDetector {
static{ System.loadLibrary("opencv_java247"); }
public List<Mat> getFaces(String url) throws MalformedURLException, IOException
{
List<Mat>faces=new ArrayList();
Mat image = Highgui.imread(url);
//code...
}
我给出了打开 cv dll 的路径--Djava.library.path="C:\Users\vivek\Documents\NetBeansProjects\TrendFaceRecognizer\src\java\data"
我不知道自己做错了什么。
【问题讨论】: