0

MATLAB R2015a でこのコードを使用しています。

javaaddpath('javacv.jar')
import org.bytedeco.javacv.*
grabber = OpenCVFrameGrabber(0)
grabber.start()
img = grabber.grab()

このコードを初めて使用すると、機能し、カメラが開き、画像がグラブされます。
を使用した後grabber.stop()、コードが機能しなくなりました。
MATLAB を再起動しても、他のプログラムでカメラを開くことができることを確認し、カメラが使用可能であることを確認してください。

次の行を実行するgrabber.start()と、新しいウィンドウ「ビデオ ソース」が開きます。
初めてコードを使用したときに開かない。

ビデオソース
次に、[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)

どうすれば解決できますか?

4

1 に答える 1

0

メンションとして@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();
于 2015-08-27T11:05:45.107 に答える