Class HoughSpaceMeasure

  • All Implemented Interfaces:
    Dependence

    @Priority(-100)
    @Reference(authors="A. Tatu, G. Albuquerque, M. Eisemann, P. Bak, H. Theisel, M. A. Magnor, D. A. Keim",
               title="Automated Analytical Methods to Support Visual Exploration of High-Dimensional Data",
               booktitle="IEEE Trans. Visualization and Computer Graphics",
               url="https://doi.org/10.1109/TVCG.2010.242",
               bibkey="DBLP:journals/tvcg/TatuAEBTMK11")
    public class HoughSpaceMeasure
    extends java.lang.Object
    implements Dependence
    HSM: Compute the "interestingness" of dimension connections using the Hough transformation. This is a very visual approach, designed to find certain patterns in parallel coordinates visualizations. The patterns detected here occur mostly if you have mutliple clusters of linear patterns as far as we understood the approach (which is not easy to use, unfortunately).

    Reference:

    A. Tatu, G. Albuquerque, M. Eisemann, P. Bak, H. Theisel, M. A. Magnor, D. A. Keim.
    Automated Analytical Methods to Support Visual Exploration of High-Dimensional Data.
    IEEE Trans. Visualization and Computer Graphics

    FIXME: while the plots look reasonable, this fails to find interesting associations. This needs closer investigation.

    Since:
    0.5.5
    Author:
    Erich Schubert, Robert Rödler
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  HoughSpaceMeasure.Par
      Parameterization class.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private int countAboveThreshold​(int[][] mat, double threshold)
      Count the number of cells above the threshold.
      <A,​B>
      double
      dependence​(NumberArrayAdapter<?,​A> adapter1, A data1, NumberArrayAdapter<?,​B> adapter2, B data2)
      Measure the dependence of two variables.
      private static void drawLine​(int x0, int y0, int x1, int y1, boolean[][] pic)
      Draw a line onto the array, using the classic Bresenham algorithm.
      private int[][] houghTransformation​(boolean[][] mat)
      Perform a hough transformation on the binary image in "mat".
      private long sumMatrix​(int[][] mat)
      Compute the sum of a matrix.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • STEPS

        private static final int STEPS
        Angular resolution. Best if divisible by 4: smaller tables. The original publication used 50.
        See Also:
        Constant Field Values
      • table

        private static final SinCosTable table
        Precompute sinus and cosinus
    • Constructor Detail

      • HoughSpaceMeasure

        public HoughSpaceMeasure()
    • Method Detail

      • dependence

        public <A,​B> double dependence​(NumberArrayAdapter<?,​A> adapter1,
                                             A data1,
                                             NumberArrayAdapter<?,​B> adapter2,
                                             B data2)
        Description copied from interface: Dependence
        Measure the dependence of two variables.

        This is the more flexible API, which allows using different internal data representations.

        Specified by:
        dependence in interface Dependence
        Type Parameters:
        A - First array type
        B - Second array type
        Parameters:
        adapter1 - First data adapter
        data1 - First data set
        adapter2 - Second data adapter
        data2 - Second data set
        Returns:
        Dependence measure
      • sumMatrix

        private long sumMatrix​(int[][] mat)
        Compute the sum of a matrix.
        Parameters:
        mat - Matrix
        Returns:
        Sum of all elements
      • countAboveThreshold

        private int countAboveThreshold​(int[][] mat,
                                        double threshold)
        Count the number of cells above the threshold.
        Parameters:
        mat - Matrix
        threshold - Threshold
        Returns:
        Number of elements above the threshold.
      • houghTransformation

        private int[][] houghTransformation​(boolean[][] mat)
        Perform a hough transformation on the binary image in "mat".
        Parameters:
        mat - Binary image
        Returns:
        Hough transformation of image.
      • drawLine

        private static void drawLine​(int x0,
                                     int y0,
                                     int x1,
                                     int y1,
                                     boolean[][] pic)
        Draw a line onto the array, using the classic Bresenham algorithm.
        Parameters:
        x0 - Start X
        y0 - Start Y
        x1 - End X
        y1 - End Y
        pic - Picture array