Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中的OpenCVFrameGrabber javacv不起作用_Java_Matlab_Opencv_Javacv_Javacpp - Fatal编程技术网

MATLAB中的OpenCVFrameGrabber javacv不起作用

MATLAB中的OpenCVFrameGrabber javacv不起作用,java,matlab,opencv,javacv,javacpp,Java,Matlab,Opencv,Javacv,Javacpp,我在MATLAB R2015a中使用此代码: javaaddpath('javacv.jar') import org.bytedeco.javacv.* grabber = OpenCVFrameGrabber(0) grabber.start() img = grabber.grab() 我第一次使用这段代码时,它就工作了,打开相机,然后取出一些图像。 在我使用grabber.stop之后,代码不再工作。 即使重新启动MATLAB,并确保我可以在其他程序中打开相机,并确保相机可用 当我运行

我在MATLAB R2015a中使用此代码:

javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = OpenCVFrameGrabber(0)
grabber.start()
img = grabber.grab()
我第一次使用这段代码时,它就工作了,打开相机,然后取出一些图像。 在我使用grabber.stop之后,代码不再工作。 即使重新启动MATLAB,并确保我可以在其他程序中打开相机,并确保相机可用

当我运行这行代码:grabber.start时,会打开一个新窗口“Video Source”。 当我第一次使用代码时,它不会打开

然后按ok,出现异常:

Java exception occurred:
org.bytedeco.javacv.FrameGrabber$Exception:
cvCreateCameraCapture() Error: Could not create
camera capture.

    at
    org.bytedeco.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:179)

我怎样才能解决它

正如提到的@Samuel Audet, 我切换到windows的VideoInputFrameGrabber

对于linux,我们需要使用FrameGrabber.createDefault0,0是设备索引,因为默认情况下网络摄像头位于0

现在代码是这样的,并且它可以工作。也许这就是我第一次用的东西

javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = VideoInputFrameGrabber(0)
grabber.start()
img = grabber.grab()
编辑:


正如提到的塞缪尔·奥德特, 对于跨平台代码,我切换到FrameGrabber.createDefault


VideoInputFrameGrabber通常在Windows上工作得更好。那个给了我什么?我不知道。你对如何在matlab上用opencv打开相机有什么建议吗?如果是,请编写替代代码。我更希望它是跨平台的代码,它也可以在linux上工作。为了跨平台的目的,请在演示类中尝试FrameGrabber.createDefault。谢谢!如何从帧转换为Matlab图像?
javaaddpath('javacv.jar');
import org.bytedeco.javacv.*
grabber = FrameGrabber.createDefault(0);
grabber.start();
img = grabber.grab();