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
propertyhdf5: 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