Skip to content
Snippets Groups Projects
Select Git revision
  • 200748966cae5d52b9aa73f810da4e09d23694f5
  • master default protected
  • refactoring
  • gemoco
  • gec-84-c-compiler-dependency
  • gec-50-only-test-plot-with-gtkmm
  • make-baseline-aoqplot-nicer
  • use-system-pybind11
  • fix-filterbank-imagesets
  • fix-drawing-large-images
  • allow-writing-to-filterbanksets
  • implement-nroamlize-bandpass-for-non-complex-data
  • support-multiple-pols-in-filterbank
  • solve-flipped-axis-crashes
  • improve-statistics-speed
  • avoid-deprecated-gtkmm
  • ast-1621-deprecated-deletetable
  • ast-1613-update-hdf5-url
  • rename-use-input-flags-variable
  • dockerfile-fix
  • open-correct-data-column
  • v3.4.0
  • v3.3.0
  • v3.2.0
  • test-vx.y
  • v3.1.0
  • v3.0.0
  • v2.15.0
  • v2.14.0
  • v2.13.0
  • v2.12.1
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.0
  • v2.8.0
  • v2.7.0
  • v2.6.0
  • v2.5.0
  • v2.4.0
  • v2.3.0
41 results

imagecomparisoncontroller.h

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    imagecomparisoncontroller.h 5.43 KiB
    #ifndef IMAGECOMPARISONCONTROLLER_H
    #define IMAGECOMPARISONCONTROLLER_H
    
    #include <gtkmm/drawingarea.h>
    
    #include <utility>
    #include <vector>
    
    #include "../../structures/image2d.h"
    #include "../../structures/timefrequencydata.h"
    #include "../../structures/timefrequencymetadata.h"
    #include "../../structures/segmentedimage.h"
    
    #include "../maskedheatmap.h"
    
    class ImageComparisonController {
     public:
      ImageComparisonController();
      void Clear();
      void SetNewData(const class TimeFrequencyData& image,
                      TimeFrequencyMetaDataCPtr metaData);
    
      /**
       * The currently visible data. This includes the masks that are activated and
       * the data is trimmed to the zoomed region. In case none of the masks are
       * visualized, the returned data has an unset mask.
       */
      TimeFrequencyData GetActiveData() const;
    
      /**
       * Same as @ref GetActiveData(), but full size ("zoomed out").
       */
      TimeFrequencyData GetActiveDataFullSize() const;
    
      /**
       * The full-size "original" data, including the original mask.
       */
      TimeFrequencyData& OriginalData() { return _dataList.front().data; }
      const TimeFrequencyData& OriginalData() const {
        return _dataList.front().data;
      }
    
      void SetAltMaskData(const TimeFrequencyData& data) {
        if (_visualizedImage == 0)
          _dataList.back().data = data;
        else
          _dataList[_visualizedImage].data = data;
        updateVisualizedImageAndMask();
      }
    
      /**
       * The full-size alternative mask
       */
      TimeFrequencyData AltMaskData() const {
        if (_visualizedImage == 0) {
          if (_dataList.size() > 1) {
            return _dataList.back().data;
          } else {
            TimeFrequencyData empty = _dataList.back().data;
            empty.SetNoMask();
            return empty;
          }
        } else {
          return _dataList[_visualizedImage].data;
        }
      }
    
      size_t AddVisualization(const std::string& label,
                              const TimeFrequencyData& data) {
        _dataList.emplace_back(label, data);