public void addMarkers(Marker[] imageMarkers) { addMarkers(markedPlane.getMarkers(), imageMarkers); } public void addMarkers(Marker[] objectMarkers, Marker[] imageMarkers) {
public void addMarkers() { addMarkers(markedPlane.getMarkers(), lastDetectedMarkers); } public void addMarkers(Marker[] imageMarkers) {
cameraCalibrators[cameraNumber].addMarkers(boardPlane.getMarkers(), imagedBoardMarkers); allImagedBoardMarkers[cameraNumber].add(imagedBoardMarkers); cameraCalibrators[cameraNumber].addMarkers(boardPlane.getMarkers(), a); allImagedBoardMarkers[cameraNumber].add(a); Marker[] prewrappedProjMarkers = new Marker[projectorPlane.getMarkers().length]; for (int i = 0; i < prewrappedProjMarkers.length; i++) { prewrappedProjMarkers[i] = projectorPlane.getMarkers()[i].clone();
if (imagedBoardMarkers .length < boardPlane .getMarkers().length*settings.detectedBoardMin || imagedProjectorMarkers.length < projectorPlane.getMarkers().length*settings.detectedProjectorMin) { return false;
public ProCamColorCalibrator(Settings settings, MarkerDetector.Settings detectorSettings, MarkedPlane boardPlane, CameraDevice camera, ProjectorDevice projector) { this.settings = settings; this.markerDetector = new MarkerDetector(detectorSettings); this.boardPlane = boardPlane; this.camera = camera; this.projector = projector; Marker[] boardMarkers = boardPlane.getMarkers(); boardSrcPts = CvMat.create(4 + boardMarkers.length*4, 1, CV_64F, 2); boardDstPts = CvMat.create(4 + boardMarkers.length*4, 1, CV_64F, 2); boardSrcPts.put(0.0, 0.0, boardPlane.getWidth(), 0.0, boardPlane.getWidth(), boardPlane.getHeight(), 0.0, boardPlane.getHeight()); for (int i = 0; i < boardMarkers.length; i++) { boardSrcPts.put(8 + i*8, boardMarkers[i].corners); } projSrcPts = CvMat.create(4, 1, CV_64F, 2); projDstPts = CvMat.create(4, 1, CV_64F, 2); projSrcPts.put(0.0, 0.0, projector.imageWidth-1, 0.0, projector.imageWidth-1, projector.imageHeight-1, 0.0, projector.imageHeight-1); camKinv = CvMat.create(3, 3); // CvMat projKinv = CvMat.create(3, 3); cvInvert(camera.cameraMatrix, camKinv); // cvInvert(projector.cameraMatrix, projKinv); }
if (detectedBoardMarkers.length >= boardPlane.getMarkers().length*settings.detectedBoardMin) {
if (lastDetectedMarkers.length < markedPlane.getMarkers().length*settings.detectedBoardMin) { return null;