private void Start() { CalibrationDataHelper.Initialize(); var chessboardImageFileNames = CalibrationDataHelper.GetChessboardImageFileNames(); foreach (var fileName in chessboardImageFileNames) { var texture = CalibrationDataHelper.LoadChessboardImage(fileName); if (texture == null || !ProcessChessboardImage(texture)) { Debug.LogWarning($"Failed to process/locate chessboard image: {fileName}"); } else { CalibrationDataHelper.SaveChessboardDetectedImage(texture, fileName); } } if (chessboardHeatmap) { CalibrationDataHelper.SaveImage(chessboardHeatmap, "ChessboardHeatmap"); } if (chessboardCorners) { CalibrationDataHelper.SaveImage(chessboardCorners, "ChessboardCorners"); } }
public void TakePhoto() { if (CompositorWrapper.IsInitialized) { var dslrTexture = CompositorWrapper.Instance.GetVideoCameraTexture(); var fileName = CalibrationDataHelper.GetUniqueFileName(); CalibrationDataHelper.SaveChessboardImage(dslrTexture, fileName); if (!ProcessChessboardImage(dslrTexture)) { Debug.LogWarning($"Failed to process/locate chessboard in dataset: {fileName}"); } else { processedImageCount++; CalibrationDataHelper.SaveChessboardDetectedImage(dslrTexture, fileName); CalibrationDataHelper.SaveImage(chessboardHeatmap, "ChessboardHeatmap"); CalibrationDataHelper.SaveImage(chessboardCorners, "ChessboardCorners"); } } else { Debug.LogWarning("CompositorWrapper isn't initialized, failed to take photo."); } }
private void Update() { if (feedImage != null && feedImage.texture == null) { feedImage.texture = CompositorWrapper.Instance.GetVideoCameraFeed(); } if (cornersImage) { cornersImage.texture = chessboardCorners; } if (heatmapImage) { heatmapImage.texture = chessboardHeatmap; } if (Input.GetKeyDown(KeyCode.Space)) { var dslrTexture = CompositorWrapper.Instance.GetVideoCameraTexture(); var fileName = CalibrationDataHelper.GetUniqueFileName(); CalibrationDataHelper.SaveChessboardImage(dslrTexture, fileName); if (!ProcessChessboardImage(dslrTexture)) { Debug.LogWarning($"Failed to process/locate chessboard in dataset: {fileName}"); } else { CalibrationDataHelper.SaveChessboardDetectedImage(dslrTexture, fileName); CalibrationDataHelper.SaveImage(chessboardHeatmap, "ChessboardHeatmap"); CalibrationDataHelper.SaveImage(chessboardCorners, "ChessboardCorners"); } } if (Input.GetKeyDown(KeyCode.Return)) { Debug.Log("Starting Camera Intrinsics calculation."); intrinsics = CalibrationAPI.Instance.CalculateChessboardIntrinsics(chessSquareSize); Debug.Log($"Chessboard intrinsics reprojection error: {intrinsics.ToString()}"); var file = CalibrationDataHelper.SaveCameraIntrinsics(intrinsics); Debug.Log($"Camera Intrinsics saved to file: {file}"); } }