2014-02-13 123 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)时,问题解决了。而不是