首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaCV: OpenCVFrameGrabber没有启动

JavaCV: OpenCVFrameGrabber没有启动
EN

Stack Overflow用户
提问于 2014-09-29 16:38:26
回答 2查看 1.8K关注 0票数 0

短版本:我的抓地器没有开始

我正在使用Netbeans 8.0、javacv和javacv。

我的问题是,我在两个摄像头之间切换。一个是我的机器人,我用“IPCameraFrameGrabber(”.)访问它。这个部分工作得很好,但为了调试(和移动),我想用笔记本摄像头测试代码(OpenCVFrameGrabber(0)或(-1)...testet,结果相同)。然而,grabber.start()似乎没有启动。

我使用以下代码(简化了,但我认为包括了基本的代码,是吗?)

代码语言:javascript
运行
复制
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_core.cvReleaseImage;

public class Simple_camera_test {

IplImage imgBin;
static IplImage imgGrab;
public static void main(String[] args) {

    try{
    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
    System.out.println("Cam check");

    grabber.start();
    System.out.println("grabber started");

    imgGrab = grabber.grab();

    CanvasFrame canvasFrame2 = new CanvasFrame("Cam2");
    canvasFrame2.setCanvasSize(imgGrab.width(), imgGrab.height());
    //canvasFrame2.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);

    grabber.setFrameRate(30);

    while ((imgGrab = grabber.grab()) != null){

        canvasFrame2.showImage(imgGrab);


        cvReleaseImage(imgGrab);

    }
    grabber.stop();
    canvasFrame2.dispose();
    }catch (Exception e) {
        e.printStackTrace();
    }

}

}

当我运行代码,它打印“凸轮检查”,摄像机开始发光,但在接下来的2-3分钟内,什么都不会发生。之后,输出是:

代码语言:javascript
运行
复制
run:
Cam check
    (after 2-3 min pause - exception handling)
grabber started
com.googlecode.javacv.FrameGrabber$Exception: cvRetrieveFrame() Error: Could not retrieve frame. (Has start() been called?)
at com.googlecode.javacv.OpenCVFrameGrabber.grab(OpenCVFrameGrabber.java:236)
at simple_camera_test.Simple_camera_test.main(Simple_camera_test.java:29)

所以对我来说问题是“抓取不了”开始,但直到现在我还不能开始。也许我的假设在general...Can中是错误的,有人帮我做这件事吗?如前所述,IPCameraFrameGrabber(机器人-ip)与完全相同的代码工作良好。

如果您需要进一步的信息,请告诉我。

我为我的英语感到抱歉,但是非常感谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2014-09-30 13:36:47

我想这是个摄像机问题。在另一台笔记本电脑上,我的代码工作得很好,但是如果有人有提示,我怎样才能让我的相机恢复工作,那就太好了!

这是联想64位,win8.1的集成摄像头,问题是:如果启动(适当的程序代码或像skype这样的程序),绿灯会发光,但没有出现图像。我已经尝试了联想的设置(摄像头不是私人的),新的驱动程序,去和重新安装。

我并不是真的期待这个问题的答案,但是如果有人碰巧有这个问题,并有一个解决办法,请告诉我!它可以给我一些时间:)

票数 0
EN

Stack Overflow用户

发布于 2015-03-16 20:03:49

试试这个:

代码语言:javascript
运行
复制
CvCapture capture = cvCreateCameraCapture(CV_CAP_ANY);
    IplImage frame= cvQueryFrame(capture);      
    cvNamedWindow("Video",CV_WINDOW_AUTOSIZE);
    char c = 0;
    while( c!=27 && frame!=null;) {
        frame= cvQueryFrame(capture);           
        cvShowImage("Video", frame);            
        c= (char )cvWaitKey(30);            
    }
    cvReleaseCapture(capture);
    cvDestroyWindow("Video");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26104756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档