2014-03-03 41 views
10

我正在嘗試檢索我的網絡攝像頭支持的可用圖片尺寸分辨率;使用OpenCV庫。我曾嘗試使用類似的Android問題/答案,但無濟於事。 (例如Android camera supported picture sizes)。這裏是我的代碼:網絡攝像頭支持的圖片尺寸

import org.opencv.highgui.VideoCapture; 
import org.opencv.core.Size; 

public class MyCameraCaptureClass { 

public static void main(String[] args) { 
    System.out.println("Hello, OpenCV"); 
    System.out.println("This program will display the webcam's supported sizes"); 

    System.loadLibrary("opencv_java248"); //load .dll for the jar 

    VideoCapture vidCap0 = new VideoCapture(0); 

    if (vidCap0.isOpened()) { 
     System.out.println("Camera found, and it works so far..."); 

     for (Size aSize : vidCap0.getSupportedPreviewSizes()) { 
      System.out.println("Doesn't print this at all"); 
      System.out.println("Height:" + aSize.height + "Width:" + aSize.width); 
     } 
    } 
    vidCap0.release(); 
    } 
} 

而且堆棧跟蹤是:

Exception in thread "main" java.lang.Exception: unknown exception 
at org.opencv.highgui.VideoCapture.getSupportedPreviewSizes_0(Native Method) 
at org.opencv.highgui.VideoCapture.getSupportedPreviewSizes(VideoCapture.java:478) 
at webcam.MyCameraCaptureClass.main(MyCameraCaptureClass.java:19) 

所有幫助將衷心感謝。

+0

您能否提供異常的堆棧跟蹤? –

+0

@Eugene Evdokimov - 只爲你:)) – Koffy

+1

看來這是OpenCV中的一個bug,最近已經修復:http://code.opencv.org/issues/3387 –

回答

9

正如評論指出,這是已被列爲校正2.4.9報告的錯誤:

這就是說,該項目是開源,並查看修正此問題的代碼更改,這是一個簡單的修復。您可以實施該錯誤修復並自行構建,直到2.4.9發佈。相關的修訂是在這裏:

線332-> 335:

替換:

return env->NewStringUTF(u.name); 

用:

// VideoCapture::get can return 0.0 or -1.0 if it doesn't support 
// CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING 
if (u.prop != 0.0 && u.prop != -1.0) 
    return env->NewStringUTF(u.name);