2016-05-03 87 views
1

私はOpenCV - Javaの初心者で、ラップトップのカメラから画像をキャプチャして基本を学びます。私は日食で次のコードを実行し、カメラの光が実際に開始したことを示す、秒間点滅するのを見ることができます。しかし、保存された画像は完全黒です。OpenCVでカメラキャプチャされた画像が完全に黒くなっています

import org.opencv.core.*; 
import org.opencv.videoio.VideoCapture; 
import org.opencv.imgcodecs.*; 

public class VideoCap { 


    public static void main(String[] args){ 

     System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 
     VideoCapture camera = new VideoCapture(0); 
     if(!camera.isOpened()) { 
        System.out.println("Erro in opening camera"); 
     } 

     else { 
      Mat frame = new Mat(); 
      while(true) { 
       if(camera.read(frame)) { 
        System.out.println("Camera obtained"); 
        System.out.println("Captured frame width" + frame.width() 
        + " catured frame height " + frame.height()); 
        Imgcodecs.imwrite("cam.jpg", frame); 
        break;     
       } 
      } 
     } 
     camera.release(); 
    } 
} 

コンソールにエラーはありません。何が間違っていますか?

+0

は、幅と高さを正しいですか? 'Imshow'(' imwrite'の前)をやってみましたか? –

答えて

0

あなたは、このようにコードを変更する必要があります。

import org.opencv.core.*; 
import org.opencv.imgcodecs.Imgcodecs;   
import org.opencv.videoio.VideoCapture;   

public class VideoCap { 
    public static void main (String args[]){ 
     System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 
     VideoCapture camera = new VideoCapture(0); 

     System.out.println("Welcome to OpenCV " + Core.VERSION); 
     if(!camera.isOpened()){ 
      System.out.println("Error"); 
     } 
     else { 
      Mat frame = new Mat(); 
      camera.read(frame); 
      while(true){ 
       if (camera.read(frame)){ 
        System.out.println("Frame Obtained"); 
        System.out.println("Captured Frame Width " + 
        frame.width() + " Height " + frame.height()); 
        Imgcodecs.imwrite("c://capture/camera.jpg", frame); 
        System.out.println("OK"); 
        break; 
       } 
      } 
     } 
     camera.release(); 
    } 
} 
+0

ブラックフレームの問題を解決する違いは何ですか? – nrofis

関連する問題