public Marker copyAsMarker() { double[] corners = new double[this.corners.length * 4]; int k = 0; for (int i = 0; i < this.corners.length; i++) { corners[k++] = this.corners[i].x; corners[k++] = this.corners[i].y; } return new org.bytedeco.javacv.Marker(id, corners, 1.0); }
int i=0; ListIterator<Marker> iter = collection.listIterator(collection.size()); while (iter.hasPrevious() && i<MAX_NUM_TO_DRAW ) { Marker marker = iter.previous(); marker.draw(canvas); i++; }
public static Marker[][] createArray(ArraySettings settings) { return createArray(settings, 0, 0); } public static Marker[][] createArray(ArraySettings settings, double marginx, double marginy) {
public IplImage getImage() { return getImage(id); }
for (Marker m : markersin) { if (m.id == i) { double[] c = m.getCenter(); infoLogString += m.id + ": (" + (float)c[0] + ", " + (float)c[1] + ") "; break; for (Marker m : markersout) { if (m.id == i) { double[] c = m.getCenter(); infoLogString += m.id + ": (" + (float)c[0] + ", " + (float)c[1] + ") "; srcPts.put(i*2 , c[0]);
Marker m = undistortedBoardMarkers[i] = distortedBoardMarkers[i].clone(); m.corners = cameraCalibrators[cameraNumber].getProjectiveDevice().undistort(m.corners); Marker m = undistortedProjectorMarkers[i] = distortedProjectorMarkers[i].clone(); m.corners = cameraCalibrators[cameraNumber].getProjectiveDevice().undistort(m.corners); Marker.applyWarp(undistortedProjectorMarkers, boardWarp[cameraNumber]);
cvGEMM(prewarp, H, 1, null, 0, H, 0); IplImage marker = getImage(); ByteBuffer mbuf = marker.getByteBuffer(); CvMat srcPts = srcPts4x1.get();
public Marker copyAsMarker() { return new org.bytedeco.javacv.Marker(id, corners, confidence); }
public void draw(IplImage image) { draw(image, CvScalar.BLACK, 1, null); } public void draw(IplImage image, CvScalar color, double scale, CvMat prewarp) {
public static Marker[][] createArray(int rows, int columns, double sizeX, double sizeY, double spacingX, double spacingY, boolean checkered, double marginx, double marginy) { ArraySettings s = new ArraySettings(); s.rows = rows; s.columns = columns; s.sizeX = sizeX; s.sizeY = sizeY; s.spacingX = spacingX; s.spacingY = spacingY; s.checkered = checkered; return createArray(s, marginx, marginy); }
double cx = x*settings.spacingX + sx + marginx; double cy = y*settings.spacingY + sy + marginy; markers[id] = new Marker(id, new double[] { cx-sx, cy-sy, cx+sx, cy-sy, cx+sx, cy+sy, cx-sx, cy+sy }, 1); id++;
public void draw(IplImage image, CvScalar color, double scale, CvMat prewarp) { draw(image, color, scale, scale, prewarp); } private static ThreadLocal<CvMat>
for (Marker m : markers) { if (m != null && m.id == j) { double[] center = m.getCenter(); double dx = center[0]*(1<<camera.getMapsPyramidLevel()) - dstPts.get(j*2); double dy = center[1]*(1<<camera.getMapsPyramidLevel()) - dstPts.get(j*2+1);
@Override public Marker clone() { return new Marker(id, corners.clone(), confidence); } public int id;
public void setPrewarp(CvMat prewarp) { this.prewarp = prewarp; if (superPlaneImage == null) { cvSet(planeImage, backgroundColor); } else { cvSet(superPlaneImage, backgroundColor); } for (int i = 0; i < markers.length; i++) { if (superPlaneImage == null) { markers[i].draw(planeImage, foregroundColor, 1.0, prewarp); } else { markers[i].draw(superPlaneImage, foregroundColor, (double) superPlaneImage.width()/planeImage.width(), prewarp); } } if (superPlaneImage != null) { cvResize(superPlaneImage, planeImage, CV_INTER_AREA); } //cvSaveImage("planeImage.png", planeImage); }
corners.position((7-dir)%4).x(), corners.position((7-dir)%4).y() }; markers2[n++] = new Marker(id, d, confidence);