/// <summary> /// Saves the acquisition information in specific files. /// The data is stored based on the COLMAP file system. /// </summary> public static void SaveAcquisitionInformation(DataHandler dataHandler, CameraSetup cameraSetup) { COLMAPConnector.CreateDirectoryStructureForAcquisition(dataHandler.dataDirectory); COLMAPConnector.SaveCamerasInformation(cameraSetup.cameraModels, dataHandler.dataDirectory); COLMAPConnector.SaveImagesInformation(cameraSetup.cameraModels, dataHandler.dataDirectory); dataHandler.SaveAdditionalSetupInformation(cameraSetup); }
/// <summary> /// Reads the acquisition information to store camera parameters and poses. /// </summary> public void ReadAcquisitionInformation() { // Reset the setup's camera models. cameraSetup.ResetCameraModels(); // Check the data directory for source data. dataHandler.CheckStatusOfSourceData(); // Check that the source data directory is configured based on the COLMAP file structure. if (COLMAPConnector.DirectoryIsValidForReading(dataHandler.dataDirectory)) { // Read the pose data and camera parameters, and store it into the initial camera models. COLMAPConnector.ReadImagesInformation(cameraSetup, dataHandler.dataDirectory, out dataHandler.imagePointCorrespondencesExist); dataHandler.SetImageURLs(cameraSetup); COLMAPConnector.ReadCamerasInformation(cameraSetup, dataHandler.dataDirectory); // Only continue if camera models were successfully parsed. if (cameraSetup.cameraModels != null && cameraSetup.cameraModels.Length > 0) { #if UNITY_EDITOR // If needed, provide default parameters for the additional source data information. if (!File.Exists(dataHandler.additionalInfoFile)) { dataHandler.SaveAdditionalSetupInformation(cameraSetup); } #endif //UNITY_EDITOR // Read the additional information, and store it in the camera setup. if (File.Exists(dataHandler.additionalInfoFile)) { dataHandler.ReadCOLIBRIVRAdditionalInformation(cameraSetup); } } } // Check whether data has already been processed or bundled. dataHandler.CheckStatusOfDataProcessingAndBundling(out isDataReadyForBundling, out isDataBundled, out processedDataInfo); }
/// <summary> /// Reads the acquisition information to store camera parameters and poses. /// </summary> public void ReadAcquisitionInformation() { // Reset the setup's camera models. cameraSetup.ResetCameraModels(); // Check the data directory for source data. dataHandler.CheckStatusOfSourceData(out sourceColorCount, out sourcePerViewGeometryCount, out sourceGlobalGeometryCount, out sourceDataInfo); // Check that the source data directory is configured based on the COLMAP file structure. if (COLMAPConnector.DirectoryIsValidForReading(dataHandler.dataDirectory)) { // Read the pose data and camera parameters, and store it into the initial camera models. COLMAPConnector.ReadImagesInformation(cameraSetup, dataHandler.dataDirectory); COLMAPConnector.ReadCamerasInformation(cameraSetup, dataHandler.dataDirectory); // Only continue if camera models were successfully parsed. if (cameraSetup.cameraModels != null && cameraSetup.cameraModels.Length > 0) { #if UNITY_EDITOR // If needed, provide default parameters for the additional source data information. if (!File.Exists(dataHandler.additionalInfoFile)) { dataHandler.SaveCOLIBRIVRAdditionalInformation(cameraSetup); } #endif //UNITY_EDITOR // Read the additional information, and store it in the camera setup. if (File.Exists(dataHandler.additionalInfoFile)) { dataHandler.ReadCOLIBRIVRAdditionalInformation(cameraSetup); } #if UNITY_EDITOR // Update the gizmo size. cameraSetup.gizmoSize = CameraSetup.ComputeGizmoSize(cameraSetup.cameraModels); cameraSetup.UpdateGizmosSize(); #endif //UNITY_EDITOR } } // Check whether data has already been processed or bundled. dataHandler.CheckStatusOfDataProcessingAndBundling(out isDataReadyForBundling, out isDataBundled, out processedDataInfo); }