agrobot_base/AgroBase/AgroBase/Models/CameraModel.cs

140 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace AgroBase.Models
{
class CameraModel
{
}
public class CameraCoordenadasModel
{
public List<CameraCoordenadasFrameModel> frames { get; set; }
}
public class CameraCoordenadasFrameModel
{
public double timestamp { get; set; }
public OAKCameraModel device_data { get; set; } = new OAKCameraModel();
public double x_max { get; set; }
public double y_max { get; set; }
public CameraCoordenadasObjetoModel[] objetos { get; set; } = new List<CameraCoordenadasObjetoModel>().ToArray();
public CameraCoordenadasFrameModel Clone()
{
return new CameraCoordenadasFrameModel()
{
timestamp = timestamp,
x_max = x_max,
y_max = y_max,
objetos = objetos.ToArray(),
device_data = device_data?.Clone()
};
}
}
public class CameraCoordenadasObjetoModel
{
public int id { get; set; }
public string descricao { get; set; }
public int x { get; set; }
public int y { get; set; }
public int altura { get; set; }
public int largura { get; set; }
public double confianca { get; set; }
}
public class CameraAnguloModel
{
public double timestamp { get; set; }
public double angulo { get; set; }
public int distancia_esquerda { get; set; }
public int distancia_direita { get; set; }
}
public class CameraDeepLabV3PlusModel
{
public double timestamp { get; set; }
public OAKCameraModel device_data { get; set; }
public double x_max { get; set; }
public double y_max { get; set; }
public OAKDLiteSubdivisoesModel subdivisoes { get; set; }
public List<List<int>> depth_data { get; set; } = new List<List<int>>();
public List<CameraDeepLabV3PlusClasseModel> Classes { get; set; } = new List<CameraDeepLabV3PlusClasseModel>();
public CameraDeepLabV3PlusModel Clone()
{
return new CameraDeepLabV3PlusModel()
{
timestamp = timestamp,
device_data = device_data?.Clone(),
x_max = x_max,
y_max = y_max,
depth_data = new List<List<int>>(depth_data),
Classes = new List<CameraDeepLabV3PlusClasseModel>(Classes),
subdivisoes = subdivisoes?.Clone()
};
}
}
public class OAKDLiteSubdivisoesModel
{
public int x_max { get; set; }
public int y_max { get; set; }
public SubdivisaoModel subdivisoes_cima { get; set; }
public SubdivisaoModel subdivisoes_chao { get; set; }
public OAKDLiteSubdivisoesModel Clone()
{
return new OAKDLiteSubdivisoesModel()
{
x_max = x_max,
y_max = y_max,
subdivisoes_chao = subdivisoes_chao?.Clone(),
subdivisoes_cima = subdivisoes_cima?.Clone()
};
}
}
public class SubdivisaoModel
{
public int num_linhas { get; set; }
public int num_colunas { get; set; }
public List<CelulaModel> celulas { get; set; }
public SubdivisaoModel Clone()
{
return new SubdivisaoModel()
{
num_linhas = num_linhas,
num_colunas = num_colunas,
celulas = new List<CelulaModel>(celulas)
};
}
}
public class CelulaModel
{
public int linha { get; set; }
public int coluna { get; set; }
public int x { get; set; }
public int y { get; set; }
public int largura { get; set; }
public int altura { get; set; }
public double profundidade_media { get; set; }
public double profundidade_calibragem { get; set; }
}
public class CameraDeepLabV3PlusClasseModel
{
public string Classe { get; set; }
public int[][] Contornos { get; set; }
}
}