MATLAB 中的 OpenCVFrameGrabber javacv 不起作用
OpenCVFrameGrabber javacv in MATLAB doesnt work
我在 MATLAB R2015a 中使用此代码:
javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = OpenCVFrameGrabber(0)
grabber.start()
img = grabber.grab()
我第一次使用这个代码,它工作,打开相机并抓取一些图像。
在我使用 grabber.stop()
之后,代码不再有效。
即使重新启动 MATLAB,并确保我可以在其他程序中打开相机并确保相机可用。
当我运行这一行:grabber.start()
,一个新的window 'Video Source'被打开。
当我第一次使用代码时它不会打开。
然后我按确定,出现异常:
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 作为提及,
我切换到 VideoInputFrameGrabber
( 对于 windows )
对于 linux 我们需要使用 FrameGrabber.createDefault(0) ,0 是设备索引,因为网络摄像头默认为 0
现在代码看起来像那样,并且可以工作。 (也许是我第一次用的??)
javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = VideoInputFrameGrabber(0)
grabber.start()
img = grabber.grab()
编辑:
如@Samuel Audet 所述,
对于跨平台代码,我切换到 FrameGrabber.createDefault()
javaaddpath('javacv.jar');
import org.bytedeco.javacv.*
grabber = FrameGrabber.createDefault(0);
grabber.start();
img = grabber.grab();
我在 MATLAB R2015a 中使用此代码:
javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = OpenCVFrameGrabber(0)
grabber.start()
img = grabber.grab()
我第一次使用这个代码,它工作,打开相机并抓取一些图像。
在我使用 grabber.stop()
之后,代码不再有效。
即使重新启动 MATLAB,并确保我可以在其他程序中打开相机并确保相机可用。
当我运行这一行:grabber.start()
,一个新的window 'Video Source'被打开。
当我第一次使用代码时它不会打开。
然后我按确定,出现异常:
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 作为提及,
我切换到 VideoInputFrameGrabber
( 对于 windows )
对于 linux 我们需要使用 FrameGrabber.createDefault(0) ,0 是设备索引,因为网络摄像头默认为 0
现在代码看起来像那样,并且可以工作。 (也许是我第一次用的??)
javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = VideoInputFrameGrabber(0)
grabber.start()
img = grabber.grab()
编辑:
如@Samuel Audet 所述,
对于跨平台代码,我切换到 FrameGrabber.createDefault()
javaaddpath('javacv.jar');
import org.bytedeco.javacv.*
grabber = FrameGrabber.createDefault(0);
grabber.start();
img = grabber.grab();