簡體   English   中英

使用Opencv的人臉檢測:找不到javacv類

[英]Face Detection using Opencv : javacv class not found

任務工作流程:使用網絡攝像頭捕獲照片並保存在目錄中,然后加載該圖像以進行opencv檢測(面部)

第一次在Ubuntu中運行該程序時,未保存圖像並且發生了異常。

錯誤1:

HTTP狀態500-

類型例外報告

信息

description The server encountered an internal error () that prevented it from fulfilling this request.

例外

javax.servlet.ServletException: Servlet execution threw an exception
root cause

java.lang.UnsatisfiedLinkError: /var/cache/tomcat6/temp/javacpp8724578391270070/libjniopencv_core.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /var/cache/tomcat6/temp/javacpp8724578391270070/libopencv_core.so.2.4)
    java.lang.ClassLoader$NativeLibrary.load(Native Method)
    java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646)
    java.lang.Runtime.load0(Runtime.java:787)
    java.lang.System.load(System.java:1022)
    com.googlecode.javacpp.Loader.loadLibrary(Loader.java:566)
    com.googlecode.javacpp.Loader.load(Loader.java:489)
    com.googlecode.javacpp.Loader.load(Loader.java:431)
    com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:266)
    com.googlecode.javacpp.Loader.load(Loader.java:453)
    com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:266)
    com.googlecode.javacpp.Loader.load(Loader.java:453)
    com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
    facerecognition.javafaces.TestServlet.doPost(TestServlet.java:104)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

java.lang.UnsatisfiedLinkError: /var/cache/tomcat6/temp/javacpp8724578391270070/libopencv_core.so.2.4: libtbb.so: cannot open shared object file: No such file or directory
    java.lang.ClassLoader$NativeLibrary.load(Native Method)
    java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646)
    java.lang.Runtime.load0(Runtime.java:787)
    java.lang.System.load(System.java:1022)
    com.googlecode.javacpp.Loader.loadLibrary(Loader.java:566)
    com.googlecode.javacpp.Loader.load(Loader.java:481)
    com.googlecode.javacpp.Loader.load(Loader.java:431)
    com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:266)
    com.googlecode.javacpp.Loader.load(Loader.java:453)
    com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:266)
    com.googlecode.javacpp.Loader.load(Loader.java:453)
    com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
    facerecognition.javafaces.TestServlet.doPost(TestServlet.java:104)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note注意在Apache Tomcat / 6.0.24日志中可以找到根本原因的完整堆棧跟蹤。

當程序第二次運行時,會保存圖像,但會發生異常

錯誤2:

HTTP狀態500-

類型例外報告

信息

描述服務器遇到內部錯誤(),導致服務器無法滿足此請求。

例外

javax.servlet.ServletException: Servlet execution threw an exception
root cause

java.lang.NoClassDefFoundError: Could not initialize class com.googlecode.javacv.cpp.opencv_highgui
    facerecognition.javafaces.TestServlet.doPost(TestServlet.java:104)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note注意在Apache Tomcat / 6.0.24日志中可以找到根本原因的完整堆棧跟蹤。

我使用了try catch,但是出現了異常。該程序在Windows中運行時沒有問題。

錯誤1:

libtbb.so是您需要安裝的英特爾線程構建模塊庫。由於正在加載其他本機庫,因此您可能尚未安裝tbb,或者它不在您的usr / lib文件夾中。

錯誤2:這是缺少jar文件錯誤。 檢查運行時應用程序類路徑中是否包含javacv jar文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM