SourceXtractorPlusPlus 0.19.2
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
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
34namespace SourceXtractor {
35
37 auto measurement_frame_coordinates = group.begin()->getProperty<MeasurementFrameCoordinates>(m_instance).getCoordinateSystem();
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
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
50 group.setIndexedProperty<JacobianGroup>(m_instance,
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
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
69 source.setIndexedProperty<JacobianSource>(m_instance,
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.
The SourceInterface is an abstract "source" that has properties attached to it.