Bluetooth 経由で無線信号を読み取る Java コードがあります。さまざまな信号を読み取りたいのですが、各信号はウェブカメラを開きます。コードが信号1を検出する場合、コードが信号2カメラ2を検出する必要がある場合、カメラ1を開く必要がある場合、4台のUSBカメラがあります。Eclipse で opencv を使用して次のコードを追加します。
if (this.isDigitalOn(1) == true)
{
CvCapture capture = opencv_highgui.cvCreateCameraCapture(0);
opencv_highgui.cvSetCaptureProperty(capture, opencv_highgui.CV_CAP_PROP_FRAME_HEIGHT, 500);
opencv_highgui.cvSetCaptureProperty(capture, opencv_highgui.CV_CAP_PROP_FRAME_WIDTH, 1000);
IplImage grabbedimage = opencv_highgui.cvQueryFrame(capture);
CanvasFrame frame = new CanvasFrame ("Webcam0");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while(frame.isVisible() && (grabbedimage = opencv_highgui.cvQueryFrame(capture)) != null)
{
frame.showImage(grabbedimage);
}
}
else
if (this.isDigitalOn(2) == true)
{
CvCapture capture1 = opencv_highgui.cvCreateCameraCapture(1);
opencv_highgui.cvSetCaptureProperty(capture1, opencv_highgui.CV_CAP_PROP_FRAME_HEIGHT, 500);
opencv_highgui.cvSetCaptureProperty(capture1, opencv_highgui.CV_CAP_PROP_FRAME_WIDTH, 1000);
IplImage grabbedimage1 = opencv_highgui.cvQueryFrame(capture1);
CanvasFrame frame1 = new CanvasFrame ("Webcam1");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (frame1.isVisible() && (grabbedimage1 = opencv_highgui.cvQueryFrame(capture1)) != null)
{
frame1.showImage(grabbedimage1);
}
}
コードは正常に動作していますが、同時に複数のカメラを開くことはできません。アイデアはありますか?