History of Changes

Version 3.1 (17/Jun/2017)

Version 3.0 (07/Nov/2016)

Version 2.3.4 (30/Jan/2010)

Version 2.3.3 (02/Oct/2009)

Version 2.3.2 (10/July/2009)

Version 2.3.1 (02/Dec/2007)

Version 2.3 (17/May/2006)

Version 2.2 (14/Oct/2004)

- fixed position of the counter window (appears only in UNIX)
- fixed initialization of the histogram window (appears only in UNIX)
- fixed cumulative histogram display for large images.
- fixed error when copying to clipboard (image and text)
- fixed some button appearance and initialization
- fixed bug in imProcessEqualizeHistogram and imProcessExpandHistogram for color images, in the IM library.
- fixed the Multiple Mean and Multiple StdDev were not using the IM library functions.
- fixed the image window can be resized to smaller values.
- fixed bug in imProcessDifusionErrThreshold for IM_GRAY images, in the IM library.
- fixed operations imProcessBitwiseNot and imProcessNegative for IM_BINARY images, in the IM library.
- fixed some kernel files were corrupted.
- fixed kernel files are topdown oriented, in the IM library.
- fixed kernel data were upside down in kernel dialog.
- fixed kernel size in kernel dialog is now defined by the empty cells not by zeros.
- fixed IM_GAMUT_EXPAND and IM_GAMUT_BRIGHTCONT normalization, in the IM library.
- fixed Process / Threshold / Slice, the max value was 255 instead of 1.
- fixed initialization of Reduce Size dialog.
- fixed initialization of Save As dialog.
- new cross cursor for the bitmap view
- new Results Window to show Measure Regions results.
- new File / Open (Preview) in Windows.
- new Process / Color / Normalize Components
- new Process / Convolve / Gaussian (without using repetitions)
- new bitmap view move and zoom change using the middle button. Click and drag to move, roll the mouse wheel to change zoom.
- new File / Capture / Background Subtraction (based in Hong and Woo paper)
- new keyboard shortcut Ctrl+Tab to change to the next image.
- new preview logic for the IupGetParam dialog. Now many operations have a preview feature.
- new vertical scale control for Histogram Window, using maximum value.
- new Process / Analyze / Find Regions
- new Process / Analyze / Measure Regions - Area,Permeter,Holes,Centroid,PrincipalAxis
- new Process / Analyze / Prune, Fill Holes, Perimeter Line
- new Process / Transform / Distance Transform, Regional Maximum
- new Process / Render / Chessboard and Grid
- changed the status help messages now work in Motif.
- changed the Capture menu items were enhanced, threshold now accepts its value when connecting, the dialog titles reflects the item choosed, multiple capture now can calculate mean and stddev. The capture dialog now can save a video while the image is being processed in real time.
- changed the File / Save As dialog for images. Now the available formats/compression are restricted by the image parameters. Kernel load and save were also improved.
- changed the IupScanf dialog was replaced for the new IupGetParam.
- changed Changed the match function definition for the imlabDlgImageWindowSelect* functions.
- changed kernel dialog now uses iupMask to filter text input.
- changed the Matrix view now has a color background that matches each pixel color.
- changed the border extensions in several types of convolution in the IM library. Rank convolution do not extend the borders. Binary morphology use zero extension. Gray morphology do not extend the borders.
- changed removed the gray version of the button images. Now the IUP library build the disabled button image.

Version 2.1 (26/Apr/2004)

- some reorganization of the imagewindow code
- fixed bug when crash after an invalid paste
- extra views window now open in cascade mode like the image window
- histogram color changed from red to darkred. R, G and B histo have now a correspondent gradient as label.
- new buttons for main window toolbar: closeall, closeallnosave, cascade, tile
- new buttons for image window toolbar: showhistogram, showmatrix
- "Make New Image" option in process menu was reviewed. Only the render menu can operates on the same image.
- window/dialogs management files moved to windows/dialogs folders
- utilities that does not depends on the IMLAB files where moved to util folder
- zoom indication moved from the status bar to each window toolbar
- new Image / Palette dialog to edit the palette of Map images

Version 2.0 (21/Apr/2004)

- lots of changes because of IM library 3.0, the base functions moved to the library including image structure and almost all image processing processing operations
- * new support for CMYK, YCbCr, XYZ, Lab and Luv images
- * Binary is an image type and a compbination of IM_MAP and palette_count
- * new file formats AVI, ICO, JP2, WMV, KRN, PNG, PNM
- * new support for attributes (metadata)
- * RAW format is now handled by the IM library
- * kernels are now a IM_GRAY image, that can be integer and float.
- * kernel files are now an IM file format.
- * FFTW was removed from the IMLAB distribution, updated to 2.15 and optionally can use 3.0.1
- some menus were rearragned to better reflect the library organization.
- changed complex images can now be viewed using also abssolute mode
- changed radial distorion factor is now divided by the square of the image diagonal.
- added a number to the window file title so we can visually reference this number in the Window Select dialog.
- new File / Open and File / Save Multi for loading and saving multiple images in the same file.
- new View / Type Conversion submenu to better control the conversion
- new View / New Bitmap (multiple views of the same window)
- new View / New Histogram (as vertical bars plot, not as an image anymore, more precise)
- new View / New Matrix (pixel in a textual matrix like in a spreadsheet)
- new Image / Attributes (view and edit attributes)
- new Process / Effects / Posterize, Replace Constant, Replace RGB
- new Process / Tonal Gamut / Zero Start
- new Process / Arithmetic (Const.) menu to compose with a constant value
- new Process / Logic / Bit Mask
- new Process / Resize / Add Margins
- new Process / Domain Transform / Cross Correlation and Auto Correlation
- new Window / Tile
- fixed bug in data type conversion for integer types, we where using only max values and the correct is max+1
- fixed bug in Filters/Convolve and other functions that use imGetKernel with kernel not initialized to NULL.
- fixed bug in the CD library that offset the image position  when the zoom were bigger than the drawing canvas.

21/set/2003 - 1.5.1

- Hough lines are now red
- Local Max threshold changed to avoid the creation of a local max image.
- Changed capture dialog so it is independent from Windows and uses less memory.
- new Swap Quadrants of complex image.
- new Effects/Pixelate
- mmDib changed to imDib, MM folder removed
- Open Watcom and DevCPP projects were not including FFTW and LIFTPACK.
- new Render/Ramp (horz and vert gradient)
- new File/SaveLog and Edit/CopyLog in the main window
- new Logic/Bit Plane (extract and remove), Logic/Split Bit Planes
- File/Open in Windows now accepts multiple file selection
- new File/CloseAll, File/SaveAll and File/CloseAll (no save)

18/set/2003 - 1.5

- SdtDev for multiple images now returns a IM_FLOAT image
- improved capture support for better compatibility
- imThreshold now accepts a value (usually will be 1 or 255)
- new Add Gaussian Noise, changed "Random" to "Uniform", Uniform now accepts mean and stddev.
- fixed bug in Normalized when the image type is IM_FLOAT.
- fixed bug in Crop when the image type is not IM_BYTE.
- improved imGetKernel for square constrain on non square kernels.
- splited image and histogram statistics. now more detailed statistics for both.
- new minmax threshold = (max-min)/2
- new Convolution with another gray int/real image
- new Difference of Gaussians, Laplacian of Gaussian
- new render Laplacian of Gaussian
- new Hysteresis threshold
- new Canny filter
- only Source and Windows binaries were updated

05/set/2003 - 1.4.2

- new Direct Show capture module, capture now has several new features
- new Capture N images, Capture from All Devices
- RMS formula was wrong
- New SNR calculation
- New Radial Distortion
- New Mean and StdDev of multiple images
- New AutoCovariance for cross-talking evaluation
- imCreateImage/imKillImage function names changed to imImageCreate/imImageDestroy

03/aug/2003 - 1.4.1

- new distribution with IUP 2.0.1
- fixed some minor bugs in fullscreen and file selection in Motif

27/jun/2003 - 1.4

- new OTSU Threshold (thanks to Flavio Szenberg).
- new IM_USHORT data type support.
- new definitions to isolate FFTW, LIFPACK and VFW code (thanks to Jean-Pierre H. Dumas).
- improved C++ templates compatibility for Watcom compiler.
- included new IUP 2.0, support for Dev-Cpp, Gcc and Open Watcom Compiler. More UNIX distributions.
- IUP 2.0: Full screen now works in UNIX. Menu "Web Site" now works better in Windows.

22/nov/2002 - 1.3.1

- When debugging in Windows a memory invasion error occurs at the menu destruction in the window close function. IupDestroy must NOT be called for menus.
- IupDestroy is now called for all the dialogs.
- new Arithmetic/ Split&Merge Complex, Conjugate, Normalize Complex by Magnitude
- new Tone Gamut / Brightness and Contrast
- corrected error in mouse click to log the pixel value.
- correct activation/disabling of Image/Pseudo Color menu
- new: IM_MAP + palette_count=2 is interpreted as a Binary image, threshold operations changed to reflect this. imCheckIsBinary is now only imImageIsBinary.
- changed: Clipboard is now better handled in Windows.
- new: File/Capture dialog for capturing from VFW devices in Windows. And simple online Bright Threshold plugin during capture.
- new: now in FullScreen, "space" changes to the next image, "backspace" changes to the previous.

05/nov/2002 - 1.3

- Split/Merge HSI
- Threshold by Local Median and Mean were replaced by Threshold by Difference where you give the median/mean filtered image as a second param
- New Threshold using the Local Max filtered image as a selector for the cut level
- Hough Lines transform was rewriten to be more simples and pratical for teaching gives now a better control of the hole process
- Now all the Histogram statistics in only one dialog
- Normalized is now Tone Gamut
- Slice move from Threshold to Tone Gamut and now can be applied for all data types.
- New Expand in Tone Gamut, similar to Histogram/Expansion
- new Gamut/Tone Crop
- In imChangePrecision used by Real2Integer in View, I comment a strange normalization done if min<0 and max>0 then min,max where adjusted to be simetric from 0.
- In the imChangePrecision function, now in the INT2BYTE convertion if min/max is between 0-255 we do not scale the tones, force min/max=0/255.
- Morph (bin/gray) was missing Load and Convolve
- new Gamut/UnNormalize, convert from (0-1) to (0-255)
- new menu filter imCheckIsBinary allows only binary (0 or 255) images to be processed, used in Morphology (bin), Hough Transforms and Plot Chain Code.
- new Gamut/Direct Conv, converts from Int and Real to 0-255 just cropping values out of bounds
- new Hues palette for angles visualization, used in Split HSI and Complex2Real/Phase.

22/out/2002 - 1.2.2

- Sobel and gaussian are now generic, were implemented only for GrayByte images.
- remove a bug from ConvolveFunc that affects Median Filter, Local Cont. Threshold, and all the rank filters. Kernel size could'nt be more than 7x7.
- new functions Filter/Mean, Threshold/Local Mean, Threshold/Local Median
- Filter (rank) / Range was implemented only for Byte images.
- bug corrected, when reading, if an error occurrs, the counter remained active.
- imKernel now can have bigger sizes, but GetKernel dialog still limited to 7x7
- incorrect border mirror of the convolution
- new Real2Integer conversion, now we have LogLite/LogHeavy/ExpLite/ExpHeavy and Custom.
- in ImageWindowUpdate we do not reset the view params anymore.
- IUP libraries were also updated

16/out/2002 - 1.2.1

- now compass kernel can also be 5x5 and 7x7
- GetKernel dialog allows you to rotate the kernel
- kernel files pack updated, several files were renamed and removed
- new Import/Export RAW
- corrected a small bug in the decimation
- simple internal documentation using Doxygen, only for headers
- New Image Always changed to a more realistic New Image Window
- New status bar help tip for several menus, and almost all items in Process menu
(available only in Windows with the IUP distributed at the IMLAB site)
- Corrected morphological Open and Close, temp image needed.

10/out/2002 - 1.2

- too many changes, version is set to 1.2
- uses 3 new libraries, so you will need to download again the libraries files.
- new function Render / Add Random Noise, Add Noise changed to Add Speckle Noise
- status bar now display complex also as |mag|<phase°
- histogram image is now a Gray image, instead of Map. This makes the index reading simpler.
- new test at function "main" if IUP failed to initialize, usefull for X-Windows display problems
- several menus were reorganized, some files were splited for easier maintenance and readability
- Process/Color menu now has the color conversion functions
- Gray conversion can be by Luma or linear coeficients
- New uniform color and gray quantization (Posterize), new gray median cut quantization
- Fit Full Screen were switched with Expand Full Screen, now is correct.
- color count now counts grays and maps
- a new Toolbar label informs the image dimensions, color mode and data type.
- new Normalized Arithmetic functions, including Linear Normalization (0-1), Negative, Solarize
- new RMS Error calculation
- new function Histogram expansion
- new Threshold / Slice
- new selective background subtraction
- new Histogram / Pixel Count Statistics and Image Statistics, Histogram Median and Mode.
- new Image / Rename
- new Render / Box, Tent, Cone, Wheel, Color


- new function imImageSetPalette
- corrected Map2Gray convertion, was missing the gray palette
- Filter Range and Median crash IMLAB, "return" missing after "if"
- Bad Byte conversion at Filter Convolve
- Only one Resize/Rotate can call all the 3 interpolation methods
- new Render menu, with Constant, Random Noise, Cosine, Sinc and Gaussian generators
- new Render / Add Noise function
- Last Kernel is now saved to be reused


- again some function names were changed
- new function imImageClone
- new function imlabProcNewItem to simplify the menu item creation
- new imlabDlgGetKernelSize dialog
- better IupScanf management
- FFTW lib in Win32 was incorrectly build
- better UNIX compatibility
- better bilinear interpolation and decimation (but slower)
- lots of new Geometric Processing functions
- complex phase was atan2(a,b)/2*PI, now is just atan2(a,b)
- new sin and cos Arithmetic Processing functions
- code from main window and image window is now complety separated
- status bar were removed from the image window and now is at the main window
- better imlabDlgImageWindowSelect dialog, allow a better image selection
- the user is now notified when converted from RGB to GRAY/MAP and when demoting the data type


- FFTW and LIFPACK were separated from the main code in external libraries.
- IMLAB now uses dinamic libraries to simplify distribution