NOTICE! This is a static HTML version of a legacy ImageJ Trac ticket.

The ImageJ project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Ticket #1128 (closed task: fixed)

Opened 2012-04-19T12:53:47-05:00

Last modified 2013-05-28T10:43:54-05:00

Unify ImgLib2 Histogram implementations

Reported by: curtis Owned by: aivar
Priority: critical Milestone: imagej2-b7-ndim-data
Component: ImgLib2 Version: 2.0.0-beta1
Severity: serious Keywords:
Cc: christian.dietz@…, Martin.Horn@… Blocked By:
Blocking: #1398

Description

There are currently multiple implementations of a histogram throughout ImgLib2 and KNIP. There is  one in net.imglib2.algorithm.stats, as well as another in [net.imglib2.script.analysis].

We need to fix up the net.imglib2.algorithm.stats.Histogram implementation to be flexible enough to cover all use cases. For example, it needs to support using any Iterable<T> rather than only Img<T> or RealCursor<T>.

Change History

comment:1 Changed 2012-06-01T15:40:46-05:00 by curtis

  • Blocking 1203 added

comment:2 Changed 2012-07-12T17:27:03-05:00 by curtis

  • Milestone changed from imagej-2.0.0-beta3 to imagej-2.0.0-beta4

comment:3 Changed 2012-08-03T13:40:13-05:00 by curtis

  • Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0-beta5

comment:4 Changed 2012-08-22T12:40:10-05:00 by bdezonia

Note that there is a Histogram2D class in imglib2 OPS

Last edited 2012-10-03T16:43:12-05:00 by bdezonia

comment:5 Changed 2012-09-07T13:04:44-05:00 by aivar

  • Owner changed from curtis to aivar
  • Status changed from new to assigned

These histogram implementations mix the basic idea of making a histogram with a means of traversing the image.

The core value to histogram bin assignment should be refactored to use the new Binning class:

 https://github.com/imagej/imglib/blob/master/imglib2/core/src/main/java/net/imglib2/Binning.java

Unfortunately the extant histogram variants involve a pass through the image. This is not very efficient if you want to find the image minimum and maximum and then build a histogram of values in that range. I added a ticket #1384.

comment:6 Changed 2012-09-07T13:06:01-05:00 by aivar

  • Blocked By 1384 added

comment:7 Changed 2012-10-03T16:42:56-05:00 by bdezonia

Christian mentioned that there is also an OpsHistogram class in imglib2 OPS.

comment:8 Changed 2012-10-10T15:31:34-05:00 by curtis

  • Milestone changed from imagej-2.0.0-beta6 to imagej-2.0.0-beta7

comment:9 Changed 2013-03-05T12:28:37-06:00 by bdezonia

  • Blocking 1398 added; 1203 removed
  • Blocked By 1384 removed

I have been doing some work on this for our most recent beta on imglib's histogram-stuff branch. Soon I'll share with others and solicit feedback.

comment:10 Changed 2013-03-05T12:29:49-06:00 by bdezonia

  • Milestone changed from imagej2-b8-analysis to imagej2-b7-ndim-data

comment:11 Changed 2013-05-28T10:43:54-05:00 by bdezonia

  • Status changed from assigned to closed
  • Resolution set to fixed

The histogram changes I made are in Imglib's master branch in the Imglib2 algorithms subproject in the histogram subpackage. Further work is needed by users of Imglib to utilize the new histogram classes. Clsogin this ticket.