2014-02-13 49 views
-1

我使用的是一臺電視攝像機,以及TV_TO_USB設備讓我的的labtop視頻Javacv :: MPEG_2視頻的IplImage

我想在一個javacv程序

使用,由於一些問題的視頻,我無法即時獲得視頻到程序(雖然它適用於內部和外部網絡攝像頭),但藍屏電腦崩潰

所以我試圖開始使用附帶的軟件錄製和保存視頻USB,它工作,然後,在錄製時,將錄製的視頻錄製到我的javacv程序

它的工作,但在幾秒鐘後,它將停止並顯示以下錯誤

OpenCV Error: Assertion failed (src.type() == dst.type()) in cvResize, file ..\..\..\..\opencv\modules\imgproc\src\imgwarp.cpp, line 3927 
Exception in thread "main" java.lang.RuntimeException: ..\..\..\..\opencv\modules\imgproc\src\imgwarp.cpp:3927: error: (-215) src.type() == dst.type() in function cvResize 

    at com.googlecode.javacv.cpp.opencv_imgproc.cvResize(Native Method) 
    at com.googlecode.javacv.cpp.opencv_imgproc.cvResize(opencv_imgproc.java:736) 
    at returnToWork.ReturnToWork.main(ReturnToWork.java:174) 
java.awt.Point[x=917,y=30] 

VIDEOINPUT SPY MODE

SETUP: Looking For Capture Devices 
SETUP: 0) CyberLink Webcam Splitter 
SETUP: 1) HP Webcam-50 
SETUP: 2) USB TV Device 
SETUP: 3 Device(s) found 

[mpeg2video @ 0000000000238400] ac-tex damaged at 1 4 
[mpeg2video @ 0000000000238400] Warning MVs not available 

的代碼是: -

public static void main(String[] args) throws Exception { 


    IplImage img ; 

    CvCapture capture3 = cvCreateFileCapture("02_13_17_05_10.mpeg"); 
    final Vector v = new Vector<>() ; 
    Image i ; 
    ImageIcon ic; 
    JPA j1 ; 
    if(!capture3.isNull()) 
    { 
    img = cvQueryFrame(capture3); 
    i = img.getBufferedImage(); 
    ic= new ImageIcon(i); 
    j1 = new JPA(ic ,933,700); 
    JFrame jf = new JFrame(); 
    jf.setTitle("HE"); 
    jf.setSize(j1.getWidth(), j1.getHeight()); 
    jf.setVisible(true); 
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    jf.addMouseListener(new ForMouse()); 

    for(;;) 
    { 

     img = cvQueryFrame(capture3); 


     IplImage image = IplImage.create(933, 700, 8, 3); 
     //resize the image 
     cvResize(img,image); 
     i = image.getBufferedImage(); 
     ic= new ImageIcon(i); 

     j1.jl.setIcon(ic); 
     j1.add(j1.jl); 
     jf.add(j1); 
     jf.validate(); 




     char c = (char) cvWaitKey(15); 

     if (c=='q')break; 

    } 
    } 
} 
} 
+0

交叉點:http://www.java-forums.org/new-java/85526-javacv-mpeg_2-video-iplimage.html –

回答

0

嗯..

我發現了問題,它解決了..問題是,「cvWaitKey(毫秒)函數沒有工作(可能它只適用於cvnamedwindow),所以我的程序的幀速率大於錄製的視頻當我使用Thread.sleep(30)時,問題解決了。而不是