public void setCalibration (CameraPinholeRadial param , DMatrixRMaj rect ) { FMatrixRMaj rect_f32 = new FMatrixRMaj(3,3); ConvertMatrixData.convert(rect,rect_f32); this.undoRadial = RectifyImageOps.rectifyImage( param, rect_f32, BorderType.ZERO, ImageType.single(GrayF32.class)); this.remove_p_to_p = RectifyImageOps.transformPixelToRect(param, rect_f32); }
ConvertMatrixData.convert(H,H32); transform.set(H32);
/** * Stereo and intrinsic camera parameters * @param baseline Stereo baseline (world units) * @param K Intrinsic camera calibration matrix of rectified camera * @param rectifiedToColor Transform from rectified pixels to the color image pixels. * @param minDisparity Minimum disparity that's computed (pixels) * @param maxDisparity Maximum disparity that's computed (pixels) */ public void configure(double baseline, DMatrixRMaj K, DMatrixRMaj rectifiedR, Point2Transform2_F64 rectifiedToColor, int minDisparity, int maxDisparity) { this.K = K; ConvertMatrixData.convert(rectifiedR,this.rectifiedR); this.rectifiedToColor = rectifiedToColor; this.baseline = (float)baseline; this.focalLengthX = (float)K.get(0,0); this.focalLengthY = (float)K.get(1,1); this.centerX = (float)K.get(0,2); this.centerY = (float)K.get(1,2); this.minDisparity = minDisparity; this.rangeDisparity = maxDisparity-minDisparity; }
private void addRectified( final String name , final DMatrixRMaj rect1 , final DMatrixRMaj rect2 ) { FMatrixRMaj rect1_F32 = new FMatrixRMaj(3,3); // TODO simplify code some how FMatrixRMaj rect2_F32 = new FMatrixRMaj(3,3); ConvertMatrixData.convert(rect1, rect1_F32); ConvertMatrixData.convert(rect2, rect2_F32); // Will rectify the image ImageType<GrayF32> imageType = ImageType.single(GrayF32.class); ImageDistort<GrayF32,GrayF32> imageDistortLeft = RectifyImageOps.rectifyImage(param.getLeft(), rect1_F32, BorderType.ZERO, imageType); ImageDistort<GrayF32,GrayF32> imageDistortRight = RectifyImageOps.rectifyImage(param.getRight(), rect2_F32, BorderType.ZERO, imageType); // Fill the image with all black GImageMiscOps.fill(rectLeft, 0); GImageMiscOps.fill(rectRight,0); // Render the rectified image DistortImageOps.distortPL(distLeft, rectLeft, imageDistortLeft); DistortImageOps.distortPL(distRight, rectRight, imageDistortRight); // convert for output final BufferedImage outLeft = ConvertBufferedImage.convertTo(rectLeft, null,true); final BufferedImage outRight = ConvertBufferedImage.convertTo(rectRight, null, true); // Add this rectified image SwingUtilities.invokeLater(new Runnable() { public void run() { gui.addItem(new RectifiedPairPanel(true, outLeft, outRight), name); }}); }
case FDRM: { m = new FMatrixRMaj(matrix.getNumRows(),matrix.getNumCols()); ConvertMatrixData.convert((DMatrixRMaj) matrix, (FMatrixRMaj)m); } break; ConvertMatrixData.convert((DMatrixRMaj) matrix, (ZMatrixRMaj)m); } break; ConvertMatrixData.convert((DMatrixRMaj) matrix, (CMatrixRMaj)m); } break; ConvertMatrixData.convert((DMatrixRMaj) matrix, (FMatrixSparseCSC)m); } break; case DDRM: { m = new DMatrixRMaj(matrix.getNumRows(),matrix.getNumCols()); ConvertMatrixData.convert((FMatrixRMaj) matrix, (DMatrixRMaj)m); } break; ConvertMatrixData.convert((FMatrixRMaj) matrix, (ZMatrixRMaj)m); } break; ConvertMatrixData.convert((FMatrixRMaj) matrix, (CMatrixRMaj)m); } break; ConvertMatrixData.convert((FMatrixRMaj) matrix, (DMatrixSparseCSC)m); } break; case CDRM: {