ChangeLog¶
Version 0.16.0¶
Enhancements:
- filter: Enable scaling in ramp_fromreal
- opencl: add options property to set build opts
- opencl: allow overriding PATCH_ and SEARCH_RADIUS
- opencl: add diff kernel
- nlm: use sigma if passed as an option
- nlm: don’t scale sigma arbitrarily
- backproject: lift angle-step and -offset limits
- read: support single plane RGB data
- write: support RGB TIFFs and JPEGs
- write: do not require fmt specifier for jpeg
- bin: support 3D binning as well
- fft: add debug message showing underlying FFT lib
- Do transpose on GPU
Fixes:
- Fix #153: handle 64 bit TIFFs gracefully
- Fix #159: add boolean rescale option
- Fix #161: add test to prove things work
- Fix #162: make use of new buffer layout API
- Fix #163: return raw-height correctly
- Fix #165: use current get_kernel API
- Fix #166: propagate OpenCL errors if possible
Breaks:
- detect-edge: rename “type” to “filter”
New filters:
- Add cone beam reconstructor
- Add tile task
- Add unsplit task
- Add map-color task
- Add gradient filter
- Add zmq-pub and zmq-sub tasks
Version 0.15.1¶
Fixes:
- #153: do not crash with 64 bit floating point TIFFs
- Use specific OpenCV 2 header file in an OpenCV 3 environment
Version 0.15.0¶
Enhancements:
- Added a manual section showing basic image processing examples
- Added a manual section to list default kernels usable with opencl and opencl-reduce
- backproject: unroll loop for P100, Quadro M6000, GTX 1080 TI and Tesla K20XM
- cv-show: use unique window name to allow multiple viewers
- dfi: clean up and simplify reflection code
- read: avoid file open check if successful
- read: add lazy timeout-based reading
- retrieve-phase: remove unused normalize parameter
- retrieve-phase: untangle macro and ?: mess
- stat-monitor: clean up and remove dead code
- stitch: minor cleanups and correct kernel release
- swap-quadrants: simplified code
- write: warn if no format spec is given for jpeg
- Fix #144: document swap-quadrants
Fixes:
- camera: fix linking with libuca
- cv-show: fix compilation with older g++ compilers
- dfi: fix wrong warning about even sample number
- dummy-data: lift number limit
- opencl: kernel name cannot be NULL
- Fix #149: image2d_t is always global
- Fix #146: use gnu99 instead of c99
- Fix #133: off-by-one cropping is bad
Breaks:
- Moved nlm kernel from nlm.cl to opencl.cl
- Remove unused default.cl
New filters:
- Added cv-show viewer
- Added circular mask filter
- Added opencl-reduce
- Added projection filter bh3
- Added filter to remove outliers
Version 0.14.1¶
Fixes:
- Let meson build all the tasks that CMake could before
- Check if Python is actually available in order to generate lamino kernels
- Fix install documentation
- Fix compilation with MacOS compilation and Python 3
- memory-in: cast pointer to target type
- write: fix problem with generated filenames that are not incremented
Version 0.14.0¶
Enhancements:
- Support meson build system alongside CMake
- Suppress tiff writing warnings
- dummy-data: add random-metadata flag
- interpolate: use GPU instead of OpenMP which is an order of magnitude faster
- lamino: allow setting addressing mode
- monitor: output metadata values as well
- raw-read: split offset in pre and post offsets
- write: add counter-start and counter-step
- write: add minimum/maximum to control conversion
- null: allow printing durations from timestamps
Fixes:
- lamino: prevent volume shifting in center kernel
- Fix #133: allow crop position with specifying dims
Breaks:
- Replaced stdout filter with standard write module
- write: rename quality property to jpeg-quality
New filters:
- Add rotate filter
- Add stitch task
- Add interpolate-stream task
- Add correlate-stacks task
- Add cut task
- Add stamp filter to print current iteration into output buffer
Version 0.13.0¶
Enhancements:
- Added infrastructure to “stage” filter contributions by third parties. To enable building it the WITH_CONTRIB option must be set explicitly to ON.
Fixes:
- write: call conversion only once
- read: fix segfault with start too large
- read: fix dumping to JSON
- Fix compilation and installation on MacOS
- Fix #128: prevent segfault with start parameter
- Do not compile ufo-priv.c for each task thus saving compile and link time
- Add documentation for undocumented tasks
New contributed filters by Serge X. Cohen (Synchrotron SOLEIL):
- Add MedMadReject median value rejection in 3D
- Add MedMadReject2D median value rejection in 2D
- Add Ocl1Liner to compute basic OpenCL arithmetics
- Add StatMonitor to output stream statistics
Version 0.12.0¶
Enhancements:
- Fortify source and enable large file support
- Re-arrange filter documentation
Fixes:
- Fix #127: use enums where possible
- Document the filter task
- Fix potential errors found with static analysis
- stdin: use gsize to avoid LFS problems
- dfi-sinc: do not call exit()
- raw/read: fix type translation for raw-offset
Breaks:
- metaballs: create filled balls rather than circles
- metaballs: remove run-infinitely and fps props
- filter: use enum instead of type-unsafe string
- loop: rename ::count to ::number
New filters:
- Add binarization filter
- Add basic segmentation filter
Version 0.11.1¶
Fixes:
- Fix #124: build and install oclfft optionally
- Use OLD behaviour for CMP0046
- Use G_MAXSIZE instead of ULLONG_MAX
- Include oclfft deps dir only if enabled
- filter: link FFT libs
- ifft: remove unused/wrong imports
- raw: do not ignore return value of fread
- transpose: fix warning if SSE is not possible
- Add license statements where missing
- Link against m unconditionally
Version 0.11.0¶
Enhancements:
- Add option to build Sphinx manual
- Improved filter documentation
- Increase robustness of OpenCL kernels by using correct type everywhere
- Make AMD clFFT optional
- backproject: improve performance on GTX Titan
- rescale: allow setting absolute width and height
- camera: allow passing properties to camera
- camera: simplify readout mechanism
- dummy-data: opt-in for initialization using init
Fixes:
- Link only to required dependencies
- Do not link oclfft unconditionally
- zeropad: fix for centers < half width
- Fix #121: use correct exit condition
- Set std=c99 only on C source files
- oclfft: link against UFO
- rescale: remove debug output
- lamino-backproject: fix for small max workgroups
Breaks:
- dummy-data: remove bitdepth property
New filters:
- Add GEMM matrix multiplication using CLBlast
- Add bin filter to bin pixel values
Version 0.10.0¶
Enhancements:
- Restructured FFT-based filters to use a common code base
- filter: Use real space ramp by default
- crop: add
from-center
property - hdf5: whitelist .hdf5 and .nxs extensions
Fixes:
- camera: do not convert 32 bit float data
- EDF: fix problem parsing Frelon EDF data
- Fix #117: fail gracefully if file can’t be written
- edf reader: Allow 512-multiple header size
- Fix reading 32 bit float raws as unsigned int
Breaks:
- read: renamed enable-conversion → convert
- null: renamed force-download → download
New filters:
- Add MemoryIn generator
- Add MemoryOut sink
- Add stdin generator
- Add stdout sink
- Add laminographic backprojection
- Add 1D stripe filter
- Add sleep task for debugging purposes
Version 0.9.0¶
Enhancements:
- backproject: reconstruct region-of-interest
- backproject: loop unroll on GTX Titan Black
- filter: generalize filter types
- read: allow overriding type detection
- read: read as many bytes as expected in raw mode
- map-slice arbitrary number of input data
- monitor: add print property to show data
Fixes:
- Fix ramp filter computation and mirroring
- Fix two dimensional batch processing of FFT and IFFT
- Fix segfault caused by double-freeing kernel
- opencl: fix copying dimension property
- read: fix segfault reading big-endian .edf
- fbp: Use number of projs to compute angle step
- dfi: add angle-step property
- blur: free allocated OpenCL buffers
- slice: slice correct number of input items
- stack: stack every [number] inputs
New filters:
- Add flip task
- Add clip task
- Add loop task
- Add refeed task
- Add merge task
- Add basic raw reader
Version 0.8.0¶
Major changes:
- Read changed “end” property back to “number”
- Renamed downsample filter to rescale
- Renamed cut-roi filter to crop
- null: added “finish” property to call clFinish()
- filter: added Faris-Byer type filter coefficients
- ifft: added crop-height property
- Removed possibility to disable building plugins
New filters:
- Add calculate task
- Add new monitor task
- Add edge detection filter
- Added HDF5 reader and writer
- Added raw writer
- Added JPEG writer
Version 0.7.0¶
This release breaks badly with all previous version because we renamed several filters and properties to clean up inconsistencies.
Major changes include:
- Integration tests have been moved to core
- writer: allow 8 and 16 bit uint output
- reader: support Multi EDF files
- reader: add y-step parameter
- reader: from:to:step selection of files
- flatfieldcorrection: add “dark-scale” property
New filters:
- Import uPIV related filters by Alexandre Lewkowicz
- Add pad to add zero padding
- Add slice mapper to arrange input as a single grid
- Add inplace flatten task for sum, min and max
- Add interpolation task to interpolate between two streams
- Add flatten task based on median sort
- Add stack task to create a volume from 2D series
- Add transpose task to rotate data
- Add measure task to measure image metrics
- Add PolarCoordinates task
- Integration of UfoIR algebraic reconstruction tasks
- Add median noise filter
- Add slice task to cut volumes into 2D data stream
- Add stripe removal task
- Add phase retrieval filter
Version 0.6.0¶
Changes¶
- Added angle offset parameter to backproject filter.
- Fix backprojection for NaN in input
- Fix LUT computation resulting in wrong reconstructions.
- Install kernel files into ${datadir}/ufo as required by ufo-core 0.6.
New filters¶
- “generate”: takes width, height and depth parameters as well as a number that is produces with the specified dimensions.
- “downsample”: reduce the size of an image by an integer