Health/Assets/OpenCVForUnity/Examples/MainModules/objdetect/ArUcoExample/CameraParameters.cs

63 lines
2.4 KiB
C#

using OpenCVForUnity.CoreModule;
using System;
namespace OpenCVForUnityExample
{
[System.Serializable]
public struct CameraParameters
{
public string calibration_date;
public int frames_count;
public int image_width;
public int image_height;
public int calibration_flags;
public double[] camera_matrix;
public double[] distortion_coefficients;
public double avg_reprojection_error;
public CameraParameters(int frames_count, int image_width, int image_height, int calibration_flags, double[] camera_matrix, double[] distortion_coefficients, double avg_reprojection_error)
{
this.calibration_date = DateTime.Now.ToString();
this.frames_count = frames_count;
this.image_width = image_width;
this.image_height = image_height;
this.calibration_flags = calibration_flags;
this.camera_matrix = camera_matrix;
this.distortion_coefficients = distortion_coefficients;
this.avg_reprojection_error = avg_reprojection_error;
}
public CameraParameters(int frames_count, int image_width, int image_height, int calibration_flags, Mat camera_matrix, Mat distortion_coefficients, double avg_reprojection_error)
{
double[] camera_matrixArr = new double[camera_matrix.total()];
camera_matrix.get(0, 0, camera_matrixArr);
double[] distortion_coefficientsArr = new double[distortion_coefficients.total()];
distortion_coefficients.get(0, 0, distortion_coefficientsArr);
this.calibration_date = DateTime.Now.ToString();
this.frames_count = frames_count;
this.image_width = image_width;
this.image_height = image_height;
this.calibration_flags = calibration_flags;
this.camera_matrix = camera_matrixArr;
this.distortion_coefficients = distortion_coefficientsArr;
this.avg_reprojection_error = avg_reprojection_error;
}
public Mat GetCameraMatrix()
{
Mat m = new Mat(3, 3, CvType.CV_64FC1);
m.put(0, 0, camera_matrix);
return m;
}
public Mat GetDistortionCoefficients()
{
Mat m = new Mat(distortion_coefficients.Length, 1, CvType.CV_64FC1);
m.put(0, 0, distortion_coefficients);
return m;
}
}
}