2012-12-07 32 views
2

這是我學習JavaCV的第一天。這是我用來確保我的設置正確完成的第一個測試示例。不幸的是,我無法運行這個例子,我幾乎無法理解代碼和所有依賴關係,所以我很難找出缺少的東西。下面我會發布我的項目設置和我得到的錯誤。JavaCV示例不起作用 - 我錯過了什麼?

而且我用的例子是:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/12/javacv-capture-save-flip-show-live.html

代碼

import static com.googlecode.javacv.cpp.opencv_core.cvFlip; 
import static com.googlecode.javacv.cpp.opencv_highgui.cvSaveImage; 
import com.googlecode.javacv.CanvasFrame; 
import com.googlecode.javacv.FrameGrabber; 
import com.googlecode.javacv.VideoInputFrameGrabber; 
import com.googlecode.javacv.cpp.opencv_core.IplImage; 

public class GrabberShow implements Runnable 
{ 
    //final int INTERVAL=1000;///you may use interval IplImage image; 
    CanvasFrame canvas = new CanvasFrame("Web Cam"); 
    public GrabberShow() 
    { 
     canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); 
    } 
    @Override 
    public void run() 
    { 
     FrameGrabber grabber = new VideoInputFrameGrabber(0); // 1 for next camera 
     int i = 0; 
     try 
     { 
      grabber.start(); 
      IplImage img; 
      while (true) 
      { 
       img = grabber.grab(); 
       if (img != null) 
       { 
        cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise 
        cvSaveImage((i++) + "-aa.jpg", img); // show image on window 
        canvas.showImage(img); 
       } 
       //Thread.sleep(INTERVAL); 
      } 
     } 
     catch (Exception e) 
     { 

     } 
    } 
} 

我用Eclipse而且好像所有的進口都在那裏。

這裏是我的項目的打印屏幕,因爲它看起來像Eclipse

enter image description here

因此,這是它的設置。我試圖從中得到一些東西。當我在項目右鍵點擊並嘗試Run它作爲Java Application下面的窗口中顯示出來:

enter image description here

您可以在窗口頂部看到我的選擇。在我得到一個錯誤窗口A Java Exception has occurred,這裏是錯誤我在控制檯窗口中獲得的一部分:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Xman\AppData\Local\Temp\javacpp4929678155627\jniopencv_core.dll: Can't find dependent libraries 
at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
at java.lang.ClassLoader.loadLibrary0(Unknown Source) 
at java.lang.ClassLoader.loadLibrary(Unknown Source) 
at java.lang.Runtime.load0(Unknown Source) 
at java.lang.System.load(Unknown Source) 
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:422) 
at com.googlecode.javacpp.Loader.load(Loader.java:372)` 

我讀過的錯誤,好像問題是由缺少的庫引起的,但我不當然,我也遵循了指令(實際上並沒有那麼多),並且從示例代碼下面的註釋中看出它實際上起作用。所以我想這個問題在這裏 - 在我的項目,代碼,設置,但我找不到我錯過或做錯了。

+1

相關:http://stackoverflow.com/questions/10711088/javacv-不滿意鏈接?rq = 1 – 2012-12-07 09:31:57

+0

@RC感謝您的參考,但說實話,這並沒有太大的幫助。另外,我希望我的問題能夠很好地格式化,以幫助具有JavaCV經驗的人輕鬆閱讀並最終找到我的代碼有什麼問題,而您提出的示例並非如此(格式很糟糕,我無法理解單個代碼他寫的內容)。 – Leron

+0

看來你錯過了一些DLL,你的庫使用本地庫...... –

回答

1

當您的opencv dll未在系統路徑中設置時,會發生此錯誤。 如果您提取您的OpenCV的文件夾C:\目錄,然後設置路徑如下

對於32位:

C:\opencv\build\x86\vc10\bin;C:\opencv\build\common\tbb\ia32\vc10\ 

對於64位:

C:\opencv\build\x64\vc10\bin;C:\opencv\build\common\tbb\intel64\vc10\ 

如果您已經提取的不同的地點,然後相應地改變路徑。

爲了設置路徑,您可以轉到控制面板>系統安全>系統>高級系統設置>環境變量。在系統變量選擇路徑並點擊編輯並插入上述位置並重新啓動窗口。

你可以在http://opencvlover.blogspot.in/2012/04/javacv-setup-with-eclipse-on-windows-7.html

+0

我剛剛添加了路徑,但仍然出現相同的錯誤。我的'OpenCV'安裝位置是'C:',也許這是更進一步的一步,但我想我還需要做更多的事情。在主文章中,您可以看到幾個選項獲得的「選擇Java應用程序」窗口。當我選擇不同的選項時,我會得到一個不同的錯誤,所以我認爲我應該在那裏做一些事情,不確定究竟是什麼,但仍然感謝您的建議。但是現在我暫且不提問題了,因爲我還沒有解決我的問題。 – Leron

+0

您提供的代碼實現了Runnable。所以你必須編寫一個測試代碼才能運行它。看看你發佈的博客鏈接。在帖子底部有一個測試代碼。或者,您也可以直接使用主要功能,如http://opencvlover.blogspot.in/2012/05/accessing-webcam-using-javacv.html – nikhil

+0

中所述。Hi nikhil我剛剛嘗試了您發佈的鏈接中的代碼以上。現在我在桌面上看到我的畫布,但只有3個系統按鈕 - 最小化,最大化,關閉,並在控制檯中出現系統錯誤:「線程中的異常」main「java.lang.UnsatisfiedLinkError:C: \ Users \ Xman \ AppData \ Local \ Temp \ javacpp21738767915013 \ jniopencv_core.dll:找不到依賴庫'。我沒有名爲'AppData'的文件夾,我不確定它是自動創建的還是我錯過了一些步驟,但是我認爲您正在以正確的方式引導我,所以您有任何想法如何解決此錯誤? – Leron

1

下載找到詳細的說明和安裝:微軟的Visual C++重新分發軟件包(32位):vcredist_x86.exe

+0

我從他們之前安裝了我們的控制面板來驗證。 – Leron

相關問題