MATLAB中的OpenCVFrameGrabber javacv不起作用
我在MATLAB R2015a中使用此代码: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,并确保我可以在其他程序中打开相机,并确保相机可用 当我运行
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();