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