About Us

Features of BiaQIm
The latest version is, March 2024

ManIcon.png Click here to download the 7 MB PDF User's Manual from my downloads page. It is richly illustrated with step-by-step examples. If you just want a quick round-up of the main features, see the points below.
YouTube This YouTube video will show you how to install the BIPS on MS Windows and Linux and take you through the step-by-step guide for deconvolution as well as a blind deconvolution demo.

List of Main Features

(*) Click here to go straight to the changes since the last release
(*) Load and Save raw data arrays upto long double floating point precision
(*) Load and Save standard image file formats (8 and 24bpp bmp, FITS, pgm, ppm)
(*) Easy 'click-n-drag' loading of images and raw data arrays. Supports multiple file selection.
(*) Interchange between different file types / data types easily.
(*) Full real-time display of pixel co-ordinates, display values and original data values at any pixel under the mouse pointer at all times.
(*) Reversible RGB <--> HSV colour space transformation. Can be done in real-time on-the-fly (limited only by computer speed and image size)
(*) Whole image statistics calculations with RGB, HSV support. Standard output: size, min, max, range, quartiles, interquartile range, mean, median, variance and standard deviation. Centile calculator allows the user to calculate any centiles with variable histogram bin size.
(*) Calculate image stats on the fly for real-time histogramming and centile-based display mapping
(*) Image list manipulations, batch processing, batch renaming and image animation
(*) Animate image lists with real-time value mapping, threshold viewing, LUT mappng and histogramming. The interactive histogram and line plotting routines allow real-time linkage to manual thresholding and pixel mapping and allow RGB or HSV components to be displayed simultaneously or separately. Histogram scaling can be manually selected and fixed and histogram data can easily be saved in a tsv file.
(*) Thresholding via interactive slider bars or user-supplied values. The basis for thresholding may be: display value, orginal data value or centile-based.
(*) Thresholding according to R,G,B or H,S,V colour models with each colour channel independently controllable. Automatic thresholding via the Kittler & Illingworth minimum error method at the click of a button. This is ideal for images with bimodal histograms. Thresholdng modes support overlap thresholds. Automated batch thresholding of a list of images is available with the ability to do binary mask post-processing on-the-fly.

BiaQIm HSV-based Thresholding in Action
HSV Thresholding with BiaQIm The original 24bpp colour image is shown top left. The hue, saturation and value channels are shown top mid-left to right. The resulting mask after application of the threhsold and a 3x3 rank filter is shown bottom right. HSV thresholding selects out the DAB immunoreaction product in ths example of prostate cancer stained by the ABC immunoperoxidase method for Chromogranin A. (Counterstained with haematoxylin). The HSV model is a powerful basis for colour discrimination. Note the BiaQIm threshold options dialogue box and the independent slider and edit controls for hue, saturation and intensity upper (U) and lower (L) thresholds. (The third slider control in each set is for the pedestal values during value mapping).

(*) All thresholding supports two thresholds (upper and lower) with many thresholding behaviour options.
(*) Value mapping between upper and lower limits and pedestal control. R,G,B or H,S,V channels separately controllable. Mapping may be performed on display values, actual data values or be centile-based. Easy hue rotation achieved via a slider bar. Automated batch image colour / value mapping is available.
(*) Look-Up-Table (LUT) manipulations. Generate you own LUT for custom visualisation. Standard mappings include inverse, square root, logarithmic, exponential, square and custom gamma. These may be applied to the original data and separately to any channel of a colour image (R,G,B or H,S,V).
(*) Independent X,Y (and Z for image stacks) display scaling with 'Micro-Display' support for very high zoom factors. This zoomed mode can be freely used when tracing regions of interest (ROI), etc.
(*) Real-time X,Y,Z line plots with variable scale factors. The data from these plots can be saved as a standard tsv file for use in spreadsheets, etc.

The BiaQIm YZ-Slicer and Plotter in Action
YZSlicersm.JPG XZ slicing is also possible. The images of serial sections in the image stack shown here were registered using the Biaram automated image registration programs and manipulated in 3-D using other Biaram programs.

(*) Real-time interactive X-Z and Y-Z slice viewing in image stacks for 3-D exploration of data.
(*) Foreground and Background mask support. Masks can be loaded or created by interactive tracing or thresholding. Logical operations and binary operations on masks. Rank filtration. Mask object labelling and object measurements. Region-based (object) statistics calculations. Object area measurements and relative area measurements to some user-specified reference area. Set image pixels under the mask to specified constant values or values derived tatistically from the original underlying pixel values.
(*) Interactive calibrated length measurements for straight lines and curved paths. Freman, Kulpa and Euclidean lengths.
(*) Automated morphometry on binary masks. When labellng a binary mask, a Euclidean distance transform and an 8-connected boundary tracking is perfomed automatically as standard. Thus when the 'Region Stats' button is clicked a host of morphometric measurements is now calculated automatically for every labelled object in the field. The measurements may be calibrated to real-world units. Measurements include area (by Pick's theorum as well as number of pixels to reduce small object area bias), perimeter, minimum and maximum diamter, binary centre of mass, shape factors (including P2A and the Danielsson shape factor, equivalent width and diamter of equivalent circle, elongatedness and eccentricity). The qrm file format saves the tracking and distance transofrm data and all data necessary to calculate the morphometric measurements. The current calibration scale factors are also saved but the morphometric measurements are independent of these such that new estimates of the morphometric measurments can be calculated using different calibration scale factors at a later date if desired.
(*) Fourier transformation (invertible) with the abilty to perform interactive frequency domain filtering. Can read in complex arrays. Display modes: Real, Imaginary, Modulus, Argument. Power spectrum easily calculated and displayed. Both FFT and 'slow' DFT available so data arrays of any size and dimensions may be transformed - not just powers of 2.
(*) Instant proceses to support DFT functions include matrix cyclisation and 2-D data windowing using the Bartlett, Hann or Welch windows in either normal or rounded (iso-distance) modes. Data windowing is reversible.
(*) Interactive object counting using the 6 channel differential counter. Each channel can be given its own name label. The size and colour of counter marks is variable by the user. Real-time grand total updates so you can stop when a certain number of objects have been counted. New counter features have been added in v2.41 (see below).

The BiaQIm Differential Counter in Action
CounterSm.JPG Note that the count marks can be given individualised name labels.
(*) Batch file renaming facility and file list generation.
(*) An easy Windows-based interface to complex high level image processing tools. Examples linked so far include maximum entropy deconvolution and automated image registration. Batch processing is possible e.g. the deconvolution of a series of images by the same point-spread-function (psf) or the automated alignment (registration) of a stack of images of serial sections for 3D reconstruction.
(*) When coupled to the appropriate Biaram modules many other processes are available. These include image rotation, translation, scaling and other transforms. Single and dual iage arithmetic. List averaging. Labelled region statistics. Precision de-interlacing of video fields. 3-dimensional image stack warpings and transforms. Background and shading corrections. Image file format and data type conversions. Wavelet-based de-noising and the digital total variation filter. Fourier transforms, convolutions, edge detection, histogram equalisation, rank filter, un-sharp mask, deonvolution... Plus many more!
(*) Works under Microsoft Windows and is FREE OF CHARGE for non-commercial use. There are no limitations - this is not 'trial-ware', 'demo-ware' or 'share-ware' - it is FREEWARE.

Features Added in v2.40 cf. v2.31
(*) Interactive measurements now include angles
(*) The line and histograms plots have been further improved. Cumulative histograms can be plotted at will. The line plots include a memory option to store a line plot from a previous position or different image and to overlay the plot in memory with the current plot. This allows comparison of line plots before and after a certain image process for example. The plots now have quantitative axes. Z-plots have the option to spread the abscissa according to numerical file names for accurate plotting of unevenly sampled data such as in time decay series.

The BiaQIm Line Plots and Histogram Options in Action
MeasPlotsSm.JPG Note that more plot options are available than shown. Normal and cumulative histogram views are available for any mode - not just HSV - by simply ticking / un-ticking the 'Cumulative' box..
(*) Image processes added include extended options in wavelet de-noising, improved digitial TV filtration (a bug was fixed and new features added), general convolution, rank filter (the general form of the median filter), many edge detectors, unshap masking, histogram equalisation (includes local area HE and adaptive neighbourhood HE), general Fourier transform, Wavelet transform, CCD image photometric calibration tool, PSF estimation tools and six deconvolution algorithms (maximum entropy, Van-Cittert, Lucy-Richardson, Least Squares, Weiner filter, Custom method). The automated image registration program has been improved and now has the option of Normalised Mutual Information-based matching. Also, many more programs have been added to the Biaram collection including nearest-neighbours 3D image restoration and programs for 3D image stack processing.
(*) The standard set of display LUTs (previously distributed as separate LUT files) are now incorporated into an easy drop-down menu. The ability to load custom LUTs to this menu by loading external LUT files is still available. The LUT mapping options have been extended to include a general gamma mapping.
(*) You may now easily convert between image data types by loading in one type and simply saving in another (no need to go through the data type conversion process). Also now have the option to save the display image as a BMP file whatever the original data type.
(*) Manual mask / ROI tracing now includes filled ellipse and rectangle draw tools and a Fourier symmetricise mask editing option to assist manual DFT filtering.
(*) The batch renaming tool now has to option to accept an external list file as the source of the output file names and there is an option to start renaming from a user-defined point in any numbered list.

Features Added in v2.41 cf. v2.40
(*) Enhanced manual differential counter functions: Now you can save and load a counting session so you can take breaks when performing large count tasks or keep records. Furthermore you can now transfer your counting dots to a labelled mask to perform analysis on the marked objects (e.g. nearest neighbour analysis). The interface is also improved - you cannot accidently reset the counter as in previous versions.
(*) Batch Renaming: The renamer can now handle arbitrary (constant) step sizes in file number - the increments do not have to be in steps of 1.
(*) 3D Slicing: Grey level scaling is now applied to XZ and YZ slices when examining an image stack.
(*) Binary processing: You can now save the distance transform separately as a raw doubles array.
(*) The interface has been improved and some bugs in v2.40 have been fixed. There is now extended support for new versions of Biaram programs including Autoreg and Formula. For a detailed list of bug fixes and changes see the ReadMe.txt file that comes with the BiaQIm distribution.

Features Added in v2.5 cf. v2.41
(*) Masking: Now you can save the components of a labelled mask invdividually: Boundary tracing and distance transform (grey lebel BMP), distance transform (raw doubles option) and labelled image (8bpp indexed colour). A bug that only accepted lower case '.bmp' extension imagesto be drag-dropped into M1 or M2 has been fixed. A bug in the 'Fourier Symmetricise' option for masks has been fixed.
(*) Batch Renaming: Several new options are provided - you can strip full path names from the file names to make qfl files more portable; you can strip a list from obsolete files; the renamer now renames any .qih files associated with the image files (previously these were ignored). The GUI has been upgraded.
(*) 3D Slicing: LUT manipulations are now shown in the XZ and YZ slices. Support for colour image slicing has been extended to allow colour separation and LUTs to be applied to colour XZ and YZ slices. The X,Y,Z plot windows can now be effectively closed by clicking the 'x' at the top of the window.
(*) Code upgrades: The overhauled and upgraded general Fourier transform, convolution and other processes are now included in this version
(*) The interface has been improved and some bugs in v2.41 have been fixed. There is now extended support for new versions of Biaram programs including Autoreg v2.62, Convolution, Deconvolution (Deconvolve, DeconME, DeconLS), Fourier, Edge detection and spatial Transforms. For a detailed list of bug fixes and changes see the ReadMe.txt file that comes with the BiaQIm distribution.

Features Added in v2.6 cf. v2.51
(*) 3D Slicing: Now you can easily save the XZ or YZ slice images through a 3D stack by just double-clicking on the XZ or YZ view window.
(*) 3D Slicing: Now when you move the mouse cursor over the XZ and YZ slices the pixels values under the mouse are displayed in real time.
(*) Staistics and display: A new button is present on the stats viewer called 'Set Display Limits' which allows you to set the min and max values for display by automatically copying the min and max values from the current statistics.
(*) Minor GUI improvments.

Features Added in v2.8 cf. v2.6
(*) A Euclidean distance transform replaces the old Chamfer method (this affects some shape factors e.g. Danielsson).
(*) Arithmetic Tool Window: Single op updated to warn user of using zero value with certain ops. Dual Arithmetic process updated to include the new 'min' and 'max' options.
(*) Filter Tool Window: Convolve now accepts qfl files for PSF and you can save the convolve settings (this provides GUI support for 3D convolution, previously only accessible via the command-line).
(*) Deconvolve Tool Window: Updated interface to read and write Deconvolve 3.0 settings and allow parallel options (also for DeconME and DeconLS). 3D support added to the GUI.
(*) Registration Tool Win: Interface updated to accept the automatic background option for Autoreg and to read/write v.2.63 files (only).
(*) Reading of settings files (convolution, deconvolution, registration) are now case insensitive.
(*) Geometry Tool Window: Updated to allow the 'AutoBg' option for non-sinc shift and scale operations.
(*) As the GUI has been adapted to run with the latest version of the Biaram programs, you should ensure that you have the 2010 release of Biaram if you want to use external processes with BiaQIm v2.8 alpha to avoid incompatibility issues.
(*) 'Transfer' buttons have been added to the Geometry, Registration and Arithmetic tool windows that allow you to automatically transfer the RGB/HSI/value values from the edit boxes in the main QI Process tab into the corresponding boxes in these tool windows. This gets around the complicated problem of trying to use the 'picker' tool to select into those tool window boxes or the drudgery of manual copying pixel values from the edit boxes in the QI Process tab to the corresponding edit boxes in those tool windows.
(*) On the 'Process' tab I have changed the 'Build+Run' button to 'Form + Run' (function remains the same) to let the user know this just forms the command string from whatever is in the command component edit boxes (so allows user edits through). I have changed function of the 'Build & Save' button - now this will build the command string from the internal settings (just as the 'START' button does but without running the program). Any user edits in the command component edit boxes will be ignored.
(*) Now the stats display gets updated every time you switch views on a complex array (between Re, Im, Arg and Mod).
(*) Stats routines can now cope with flat images i.e. images where all pixels are the same value (before they would not calculate stats or a histogram if the image was flat and gave a pop-up message).
(*) File list ops: Made the 'Clear unreadable entries' function more robust. Now it actually checks to see if the file is readable (before, it only checked to see if there was a readable qih header file or checked the file itself only if it had an internal header. Thus if a raw datatype file went missing but its qih header still existed this function would not remove the image from the list. This is now fixed).
(*) File list animation: The animation delay steps now increase more steeply (to allow slower frame rates). XZ and YZ views: The pixel values in the XZ and YZ planes are displayed in real-time as the mouse moves over the XZ or YZ slice currently displayed. Also, it is now easy to save the XZ or YZ slice bitmap by double-clicking on the image. Actually these two features were present in the last release but were not mentioned in the manual.
(*) Some GUI issues have been fixed: The background colour on many text edit boxes has been changed from grey to teal to make the caret more easily visible. Wrong symbols were displayed on some of the calculator buttons depending on the computer's font set - this has been fixed. Also the name Kulpa was wrongly spelt 'Kulper' and Watanabe as 'Wanatabe' - these have been fixed.
(*) Updated common libraries are used which give more robust error checking, make it less likely that the program with terminate without warning and fix a small memory leak that affected read/write of BMP images.
(*) A bug in Centre-of-Mass (CoM) shape measure has been fixed.
(*) A bug was fixed that prevented ARG and MOD of Fourier transforms from being affected by the 'original data' mappings.
(*) A bug was fixed that prevented drag-n-drop of .dft files.
(*) A bug was fixed that partly occluded the top-most pixel row of the displayed image in 1:1 zoom (main display and secondary display).
(*) Some potential/actual memory problems have been fixed when checking for qih files.
(*) A bug was fixed that read the output file name from the input batch file (rather than the output batch file) during batch processes and so would overwrite the input image (unless file name extension / modification was used).
(*) A significant memory leak in stats routine has been fixed (it used to gobble up an image-sized array of doubles each time the stats routine was called e.g. when loading an image in centiles mode).

Features Added in v2.9 cf. v2.8
(NEW!) In addition to the changes described below for the BiaQIm GUI program, the latest distribution also has many upgrades to the Biaram collection and new programs added.
(NEW!) Added an 'Auto close' tick box (default is ticked) to the 'Other Settings and Tools' tab of the "QI File List Tool" window. This closes the window as soon as you select one of the buttons there (e.g. 'Strip to file name only').
(NEW!) Added a button to the calculator called 'M%'. When clicked this computes the percentage that the non-zero pixels in mask 1 are cf. the number of non-zero pixels in mask 2 (i.e. 100.0*NM1/NM2) and prints the result to input 1 or input 2 of the calculator (whichever has current focus). If NM2 is 0 then 'Infinity' is the answer. If either mask is unoccupied then a pop-up error message is shown stating that both masks must be occupied for the function to work.
(NEW!) Changed the License text window from a TRichEdit to a TListBox as the RichEdit control may have been responsible for blocking the GUI from running on some newer versions of Windows.
(NEW!) Improved the KIME thresholding function (Kittler & Illingworth Minimum Error) so it does not return a fatal error when it fails (now QI will not crash out but displays a friendly pop-up error and continues).
(NEW!) Now if you drag-drop a .qih file into QI it quietly ignores it. Previously it would interrupt with a pop-up error but this is not conducive to smooth loading of multiple raw images by drag-drop if your drag selection includes the .qih files.
(NEW!) Automatic registration GUI has been altered to allow use of XYReg as well as AutoReg.
(NEW!) The 'fixed-size crop box' overlay now correctly shows the size of the box (before it overshot in X and Y by 1 pixel even though the final cropping was correct in dimensions). If the crop box height or width is 1 pixel then no overlay is displayed (but this is not addressed because it should be a relatively rare user choice).
(NEW!) Now if your last focus was the crop box height or width edit boxes then this will be tantamount to the other crop edit boxes (before, last focus in the crop height / width boxes did not count for anything).

Features Added in the March 2024 release
(NEW!) When you start BiaQIm a ‘console’ type window will start with it (useful because it outputs any messages from processes run by BiaQIm and can help greatly is debugging any problems, for example when a process does not run as you expect it to).
(NEW!) I altered the GUI interface to display well on WINE in Linux as well as Windows.
(NEW!) The license window and help box text have been updated to reflect the use of the GNU GPL v3.0 license of the current open source release.
(NEW!) I added a central marker circle to the ‘Micro Display’ (used in high zoom mode) window to indicate to the user which is the current pixel the mouse is over.
(NEW!) A new ‘angle indicator’ has been added to the main image window overlay and the micro display. This follows the mouse pointer and shows the direction angle of the underlying pixel (for images where pixel value represents some angle like phase or hue).
(NEW!) A new boundary treatment option has been added to the Deconvolution tool window – the ‘Balanced’ (or ‘BB’) method i.e. the method of Bertero & Boccacci.
(NEW!) I changed the multiplication symbol to 'x' in the relevant option for 'formula' and 'cxformula' (BiaQIm no longer uses '*').
(NEW!) I updated the Cepstrate options (in the ‘PSF Estimation’ tool window) to fit the latest version of that program.
(NEW!) The internal stats for regions and measurements are now stored in variables of size ‘double’ (double precision floating point) instead of ‘long double’ as before. This is because BiaQIm compiles with a size of 8 bytes for a double (which is quite ‘standard’ and widespread amongst computers at the time of updating this manual as it was 30 years ago when BiaQIm was first written) but the ‘long double’ is represented by 10 bytes in BiaQIm and this is much less ‘standard’ in modern computers. This affects the size of data written to and read from the .qrm files used to save combined mask and measurements data so any qrm files generated by previous versions of BiaQIm may no longer be compatible with the current version. I have also taken the opportunity to add new features to the .qrm file and so only this new format (v2.0) is read and written by BiaQIm, older formats will be rejected.
(NEW!) BUG FIX: The annoying problem of BiaQIm appearing to ‘hang’ on some newer versions of MS Windows has be fixed.
(NEW!) BUG FIX: I use the very latest updated tsam code with bug fixes and improvements.
(NEW!) BUG FIX: I fixed bugs in the Micro Display high zoom viewer which meant the zoomed image you were seeing was not properly centred on where your mouse was over the main image. Now the image is properly centred and it reports the correct pixel values when in this mode.
(NEW!) BUG FIX: The Micro Display high zoom image now updates in real time when you draw some overlay on the image (before you had to move the mouse to update it).
(NEW!) BUG FIX: I fixed the bug that did not accept FITS files if their extension was '.fits' instead of '.fit'.
(NEW!) BUG FIX: Some issues where the program changed the case of file names and file paths when it reads them have been fixed so it does not do this.
(NEW!) BUG FIX: Fixed GUI behaviour when loading or viewing modulus and argument data – this involved ensuring the label next to the box that displays the mod or arg values is properly updated to show ‘Md’ or ‘Ag’ when in those modes (it did not always do this before).
(NEW!) BUG FIX: Potential segmentation fault bug fixed in the Euclidean distance transform function.
(NEW!) BUG FIX: Bugs fixed in the routine to read .qrm files.

 Copyright Copyright Dr P. J. Tadrous 2000-2024

Site Map