SourceXtractorPlusPlus  0.16
Please provide a description of the project.
JacobianTask.cpp
Go to the documentation of this file.
1 
17 /*
18  * JacobianTask.cpp
19  *
20  * Created on: Oct 08, 2018
21  * Author: Alejandro Alvarez Ayllon
22  */
23 
28 
30 
33 
34 namespace SourceXtractor {
35 
37  auto measurement_frame_coordinates = group.begin()->getProperty<MeasurementFrameCoordinates>(m_instance).getCoordinateSystem();
38  auto& detection_group_stamp = group.getProperty<DetectionFrameGroupStamp>();
39  auto detection_frame_coordinates = group.begin()->getProperty<DetectionFrameCoordinates>().getCoordinateSystem();
40 
41  double x = detection_group_stamp.getTopLeft().m_x + detection_group_stamp.getStamp().getWidth() / 2.0;
42  double y = detection_group_stamp.getTopLeft().m_y + detection_group_stamp.getStamp().getHeight() / 2.0;
43 
44  auto frame_origin = measurement_frame_coordinates->worldToImage(detection_frame_coordinates->imageToWorld(ImageCoordinate(x, y)));
45  auto frame_dx = measurement_frame_coordinates->worldToImage(
46  detection_frame_coordinates->imageToWorld(ImageCoordinate(x + 1.0, y)));
47  auto frame_dy = measurement_frame_coordinates->worldToImage(
48  detection_frame_coordinates->imageToWorld(ImageCoordinate(x, y + 1.0)));
49 
51  frame_dx.m_x - frame_origin.m_x, frame_dx.m_y - frame_origin.m_y,
52  frame_dy.m_x - frame_origin.m_x, frame_dy.m_y - frame_origin.m_y);
53 }
54 
56  auto measurement_frame_coordinates = source.getProperty<MeasurementFrameCoordinates>(m_instance).getCoordinateSystem();
57  auto& detection_boundaries = source.getProperty<PixelBoundaries>();
58  auto detection_frame_coordinates = source.getProperty<DetectionFrameCoordinates>().getCoordinateSystem();
59 
60  double x = detection_boundaries.getMin().m_x + detection_boundaries.getWidth() / 2.0;
61  double y = detection_boundaries.getMin().m_y + detection_boundaries.getHeight() / 2.0;
62 
63  auto frame_origin = measurement_frame_coordinates->worldToImage(detection_frame_coordinates->imageToWorld(ImageCoordinate(x, y)));
64  auto frame_dx = measurement_frame_coordinates->worldToImage(
65  detection_frame_coordinates->imageToWorld(ImageCoordinate(x + 1.0, y)));
66  auto frame_dy = measurement_frame_coordinates->worldToImage(
67  detection_frame_coordinates->imageToWorld(ImageCoordinate(x, y + 1.0)));
68 
70  frame_dx.m_x - frame_origin.m_x, frame_dx.m_y - frame_origin.m_y,
71  frame_dy.m_x - frame_origin.m_x, frame_dy.m_y - frame_origin.m_y);
72 }
73 
74 } // end SourceXtractor
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
void computeProperties(SourceGroupInterface &source) const override
Computes one or more properties for the SourceGroup and/or the Sources it contains.
void computeProperties(SourceInterface &source) const override
Computes one or more properties for the Source.
The bounding box of all the pixels in the source. Both min and max coordinate are inclusive.
Defines the interface used to group sources.
void setIndexedProperty(std::size_t index, Args... args)
Convenience template method to call setProperty() with a more user-friendly syntax.
const PropertyType & getProperty(unsigned int index=0) const
Convenience template method to call getProperty() with a more user-friendly syntax.
The SourceInterface is an abstract "source" that has properties attached to it.
void setIndexedProperty(std::size_t index, Args... args)
Convenience template method to call setProperty() with a more user-friendly syntax.
const PropertyType & getProperty(unsigned int index=0) const
Convenience template method to call getProperty() with a more user-friendly syntax.