We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hello everyone.
I was trying to create a detecting system for a project, and by far I was testing only on a MacBookPro, where I attached 2 USB web cam (same brand/model) while using the built-in InSight Camera as the 3rd Camera.
On MacMini, I have 3 web cams (same brand/model) but when I run the code, only one Camera shows its output. A second camera will turn on its led, but shows a black output. The third camera doesn't even turn its indication led on. I have tested each camera separately, or in pairs, but no good news. Still on MacMini system Information window, I can see it recognises those 3 cameras at same time.
Any one would have a similar problem before, or any suggestion please? Thanks!!
The prototype was working on a MacBookPro (with its built-in camera). This is the code:
import gab.opencv.*;
import java.awt.Rectangle;
import processing.video.*;
Capture camL, camM, camR;
OpenCV opencvL, opencvM, opencvR;
Rectangle[] facesL, facesM, facesR;
PImage srcL, srcM, srcR;
void setup() {
  size(960,180);
  frameRate(15);  
  //L for left Camera
  camL = new Capture(this,320,180,"Logitech カメラ",30);
  camL.start();
  opencvL = new OpenCV(this, camL.width,camL.height);
  opencvL.loadCascade(OpenCV.CASCADE_FRONTALFACE); 
  //M for Center Camera
  camM = new Capture(this,320,180,"FaceTime HD カメラ(内蔵)",30); //on MacMini, change name: Logitech カメラ #2
  camM.start();
  opencvM = new OpenCV(this, camM.width,camM.height);
  opencvM.loadCascade(OpenCV.CASCADE_FRONTALFACE);  
  //R for Right Camera
  camR = new Capture(this,320,180,"Logitech カメラ #2",30); //on MacMini, change name: Logitech カメラ #3
  camR.start();
  opencvR = new OpenCV(this, camR.width,camR.height);
  opencvR.loadCascade(OpenCV.CASCADE_FRONTALFACE); 
}
void draw() {
  if(camL.available()){
    camL.read();
    srcL = camL.get();
    opencvL.loadImage(srcL);
    image(opencvL.getInput(), 0, 0);
    facesL = opencvL.detect();
    noFill();
    stroke(0, 255, 0);
    strokeWeight(3);
    for (int i = 0; i < facesL.length; i++) {
      rect(facesL[i].x, facesL[i].y, facesL[i].width, facesL[i].height);
    }
  }
  if(camM.available()){
    camM.read();
    srcM = camM.get();
    opencvM.loadImage(srcM);
    image(opencvM.getInput(), 320, 0);
    facesM = opencvM.detect();
    //image(cam, 0, 0);
    //set(0,0,cam);
    noFill();
    stroke(0, 255, 0);
    strokeWeight(3);
    for (int i = 0; i < facesM.length; i++) {
      rect(320 + facesM[i].x, facesM[i].y, facesM[i].width, facesM[i].height);
    }
  }
  if(camR.available()){
    camR.read();
    srcR = camR.get();
    opencvR.loadImage(srcR);
    image(opencvR.getInput(), 640, 0);
    facesR = opencvR.detect();
    noFill();
    stroke(0, 255, 0);
    strokeWeight(3);
    for (int i = 0; i < facesR.length; i++) {
      rect(640 + facesR[i].x, facesR[i].y, facesR[i].width, facesR[i].height);
    }
  }
}