imagepro  2019 march
Biblioteca imagepro
Clases | Namespaces | Enumeraciones
Referencia del Archivo measure2d.h

Clase para realizar y dibujar medidas2D sobre una imagen. Más...

#include <QDebug>
#include <QVector3D>
#include <QtMath>
#include <QLineF>
#include "imagepro.h"

Ir al código fuente de este archivo.

Clases

struct  m2d::measure2Dinput
 
struct  m2d::measured2D_imgwc
 
struct  m2d::measure2Doutput
 
class  Measure2D
 

Namespaces

 m2d
 

Enumeraciones

enum  m2d::Units { m2d::meters, m2d::pixels }
 

Descripción detallada

Clase para realizar y dibujar medidas2D sobre una imagen.

Versión
1.0
Fecha
2019 march
Autor
Carlos Alberto Ospina Caicedo (SGC-OVSPo)

Esta clase permite por medio de estimaciones geométricas y un modelo pinhole de la cámara, estimar distancias sobre el plano imagen.

Ejemplo de uso:

int main()
{
measure2Dinput m2dinput;
QPixmap pix;
if(pix.load("pathimagen.jpg"))
{
m2dinput.image_width = pix.width();
m2dinput.image_height = pix.height();
}
else
return;
m2dinput.h_meter2pix = h_meter2pix ;
m2dinput.v_meter2pix = v_meter2pix ;
m2dinput.camera_azimut = azimut ;
m2dinput.camera_rotation = rotation ;
m2dinput.camera_elevation= elevation ;
m2dinput.camera_latitude = latitude ;
m2dinput.camera_longitud = longitud ;
m2dinput.camera_height = height ;
m2dinput.object_distance = object_distance;
m2dinput.h_FOV = hFOV ;
m2dinput.v_FOV = vFOV ;
m2dinput.meter2degrees = 111319.00; // meter2degrees ;
m2dinput.err_pickPixError = err_pickPixError ;
m2dinput.err_h_meter2pix = err_h_meter2pix ;
m2dinput.err_v_meter2pix = err_v_meter2pix ;
m2dinput.err_camera_azimut = err_azimut ;
m2dinput.err_camera_rotation = err_rotation ;
m2dinput.err_camera_elevation = err_elevation ;
m2dinput.err_object_distance = err_object_distance ;
m2dinput.err_h_FOV = err_hFOV ;
m2dinput.err_v_FOV = err_vFOV ;
m2dinput.err_v_FOV = err_vFOV ;
//Mediremos entre 0,0 y 100,150:
m2dinput.A_2d = QPoint(0,0);
m2dinput.B_2d = QPoint(100,150);
Measure2D measure2d;
measure2d.setInputData(m2dinput);
measure2d.calculate_factors();
measure2d.calculate_measure2d();
m2doutput = measure2d.getOutputData();
qDebug() << "measure_length" << m2doutput.measure_length;
//Para dibujar la medida, se requiere de la estructura measured2D_imgwc:
//Sobre cómo manejar esta estructura, ver la clase: measure2d_imagenes_wc.h de volcamcore.dll
measure2d_imagenes_wc *m2dimgwc_class;
if(m2dimgwc.measure_id.size()>=0)
{
Measure2D m2dclass;
pix = measure2d.draw(pix,m2dimgwc);
}
}