IPD - Image Processing Design Toolbox Version 3.1
Copyright (c) by Dr. Eng. (J) Harald Galda, 2009 - 2010.
Conveyed under the conditions of the GNU GPL Version 3 or later.
This toolbox provides functions for designing and parameterizing image
processing algorithms. The following functionality is provided:
1. Histogram calculation
- gray level histogram
- cumulated histogram
- segmentation by threshold
- threshold calculation by Otsu method
3. Morphological filters
- top hat
- bottom hat
4. Median filter
5. Filtering for edge detection
- Sobel filter
- Laplace filter
- Prewitt filter
- Scharr filter
6. Region based segmentation
- distance transform
- watershed transform
7. Blob analysis
- searching connected regions in binary images
- removing blobs that have less pixels than a lower bound or more pixels
than an upper bound
- calculating specific properties of blobs such as bounding box, centroid
- drawing bounding boxes around objects found in an image
- calculating histogram of blob sizes
- calculating cumulated histogram of blob sizes
8. Displaying images in figure windows
- conversion of RGB to indexed images
- conversion of indexed images to RGB
9. Conversion between color images and gray level images
- RGB to gray level
- RGB to L*a*b*
- L*a*b* to RGB
10. Opening image and video files
- reading image files
- writing image files
- reading video files
Changes between version 3.0 and version 3.1
- Some errors in online help were corrected.
- The sources were provided so it will be possible to compile the toolbox
on both Windows and Linux.
This version uses OpenCV 2.0 which is available for download at
It is recommended to choose Atlas library option when installing Scilab. IPD
can not be loaded if the reference library option was chosen during Scilab
installation. The author of this toolbox does not use Intel Math Kernel
This file describes the functionality and building requirements.
Upload date : 2010-02-25 10:01:35
MD5 : cb53a217ce4fc866daf0aa520a8f3846
SHA1 : b9512d7caace8d75fdcdfb7eb3f1ebaaf27e8927
Downloads : 1526
This ZIP contains the sources of IPD 3.1, i. e. the Scilab scripts, C++ files
and XML files. If you have OpenCV 2.0 on your computer, you can copy the files
to the directory
and build the toolbox.
The script builder_gateway_cpp.sce sets include and library path for both
Windows and Linux assuming that Microsoft Visual Studio 2008 Express Edition is
used for compiling the library on Windows and g++ is applied on Linux.
The author has compiled and tested the toolbox on Windows XP.
Upload date : 2010-02-23 20:06:22
MD5 : 04dbe57a5534df3f1d49dbe5a7601faa
SHA1 : 366ecfff7b2763cea7bb7198d22cbe73ef27fff1
Downloads : 307
This ZIP file contains the Windows binary version of IPD 3.1. It is compiled
with Scilab 5.2.0 on Windows XP. This toolbox can also be compiled with Scilab
5.2.1 on Windows XP.
Upload date : 2010-02-24 16:26:09
MD5 : bc34a866609b2e2eba5c7e4237591904
SHA1 : 3c101d05360fa40c21e3b0dbcefe777f756ffc15
Downloads : 365
I tried to download and compile the third party library OpenCV on a virtual PC
with 64 bit Ubuntu Linux as described at
When I tried to download the required packages, I received an error message.
When I compiled the toolbox, some binary files were created, but I received some
I was able to build and to load the toolbox on Linux. But an error message
occurs when calling ReadImage. The internal function ReadImageFile should return
two outputs: The first is a list of gray values or channel intensity values. The
second specifies the number of rows, columns and color channels. However, the
path of the image is returned instead.
This means that the library function for loading an image does not work properly
on the virtual Linux machine. An image processing toolbox that has no
functionality for reading image file is not of much use. Therefore, I am not
going to upload the 64 bit Linux binaries. I need no virtual 32 bit Linux
machine so I am not going to attempt to build the toolbox for 32 bit Linux.
I suggest that someone who has enough Linux experience build the toolbox on
The toolbox is available on MacOS Yosemite now. Distance transform and watershed
transform are not included due to problems with external library functions the
distance transform depends on. I suggest that the sources of the toolbox and
OpenCV are built on MacOS and a workaround for the crash in
DistanceTransform.cpp is found later.
The packages generated by ATOMS compilation chain on 10 october 2011 work fine.
The 64 bit Windows package uploaded on 2011-10-07 09:36:44 does not contain
online help. The sources uploaded on 2011-10-07 19:25:13 do contain the online
The 32 bit Windows package uploaded on 2011-10-07 09:50:00 has no build log file
and can not be downloaded. It seems that the ZIP file contains an error. I
disabled both ZIP files. The 32 bit Windows package is replaced by a version I
built. I downloaded the 64 bit Windows package built by ATOMS compilation chain,
I manually added help files and I uploaded it.
I suggest that the toolbox is re-built on 32 bit Windows and 64 bit Windows.
A package for 32 bit Linux was built. However, it seems that the Linux version
will not work because the sources I submitted do not contain the Linux version
I suggest the following steps to make the toolbox available for Linux:
1. A subdirectory should be added to sci_gateway/cpp/lib/
2. The following files should be copied to the new subdirectory: cxcore210.lib,
cxcore210.so, cv210.lib, cv210.so, highgui210.lib, highgui210.so
3. The script builder_gateway_cpp.sce in the directory sci_gateway/cpp/ should
be extended so the library path is found and the *.so files are copied to the
Please understand that I am not able to do this as I do not have access to a
IPD 8.0 was uploaded on February 21st, 2011. This is the first version that can
be built on 64 bit Windows. The toolbox can be built on 32 bit Windows, too, of
As online help can not be built on Scilab 5.3.0, the help files of IPD 7.0 are
provided in the source files and building help is disabled on Scilab 5.3.0.
Building the online help does not work with Scilab 5.3.0. If you intend to build
the sources, please comment the line
in line 60 of builder.sce and type
// if installed via ATOMS
// if installed manually
in a previous version of Scilab.
Version 6.1 was added. The differences between versions 6.1 and 6.0:
- Online help will always be loaded when loading the toolbox,
regardless of installation method.
- Image paths in online help examples now consist of the dynamically
determined toolbox path and the subdirectory 'demos'. This makes
ist sure that examples can be executed in Scilab, regardless of the
The toolbox should be re-built by atoms compilation chain, because IPD.Start had
to be be modified.
The following lines were replaced:
// load help
help_path = pathconvert(IPD_PATH) + 'help' + filesep();
help_path = help_path + 'de_DE';
help_path = help_path + 'en_US';
help_path = help_path + 'ja_JP';
help_path = help_path + 'en_US';
if isdir(help_path) then
current_path = pwd();
by the following code:
// load help
help_path = pathconvert(IPD_PATH) + 'jar' + filesep();
if isdir(help_path) then
add_help_chapter('IPD - Image Processing Design', help_path, %F);
IPD 6.0 was released on 5 September 2010. There are the following changes
between versions 6.0 and 5.0:
1. Template matching functionality was added.
2. This version can be built using Scilab 5.3.0 Beta 3.
I tested IPD 5.0 on Scilab 5.2.2 and Windows 7. I built the sources using the
local version of Visual Studio. IPD 5.0 can be loaded into Scilab 5.2.2. The
The C++ compiler the OpenCV libraries were built with must be present on the
machine IPD is loaded. If an error message such as "cxcore200.dll does not
exist" occures when loading IPD into Scilab, there are the following options:
1. Install Microsoft Visual Studio 2008 Express Edition on your computer.
2. Download OpenCV 2.0 and build it with the C++ compiler installed on your
computer. Then replace the files
in the directory
and the files
in the directory
by the corresponding files created by your C++ compiler.
Please run the script
in the directory
Version 5.0 was released on 26 March 2010. The differences between version 4.0
and 5.0 are the following:
- Functions for computing wavelet frames (similar to discrete wavelet
transform, but invariant to translation) were added.
- Constants implemented as variables such as TYPE_DOUBLE, EDGE_SOBEL are
global variables now so the toolbox can be loaded by atomsLoad.
- The stack size is increased to maximum when the toolbox is loaded.
IPD 4.0 was released on 16 March.
New or changed functions:
1. CalculateTextureEnergy, can be used for texture segmentation
2. EdgeFilter re-implemented as *.sci file so edge filters can be modified
3. Linear filtering with rectangularand separable filters.
Building the toolbox:
The source package contains the *.lib and *.dll files of OpenCV so that the
source package can be compiled on Windows. If you intend to compile the package
on Linux or Mac, please replace the *.lib and *.dll files by the corresponding
files of your operating system.
A German and a Japanese online help are added. If you find errors in the
Japanese help, please tell me. Please feel free to write in Japanese in this
The toolbox can be downloaded with Atoms GUI now. Atoms creates the directory
with the sub-directory
When you copy or move this sub-directory
so that there is the directory
the toolbox can be loaded into Scilab after closing and relaunching it.
There is an error message "installation failed", but this is related to some
internal problem of Atoms.
I uploaded a new ZIP file with source files today. The windows package is not
affected by the changes in the source files.
IPD 3.3 was released on 3 March 2010.
The version 3.2 was released on 28 February 2010.
The versions 2.0 and 3.0 are available as ZIP files. You can install one or both
of these versions by extracting the ZIP files to
IPD 2.0 and 3.0 work on Windows only.
The sources and builder files of IPD 3.1 are uploaded. A compiled version for 32
bit Windows XP is uploaded, too.
I'm using WinXp with Scilab 5.2.0 installed.
when I try: atomsInstall(['IPD','3.1']) I get:
atomsInstallList: das Paket IPD - 3.1 ist nicht verfügbar.
at line 51 of function atomsError called by :
at line 76 of function atomsInstallList called by :
at line 257 of function atomsInstall called by :
I extracted IPD.zip to scilab-5.2.0\contrib\ and tried to load, what I get is:
IPD - Image Processing Design Toolbox 3.1
link: Die Datei cxcore200.dll existiert nicht.
link: das gemeinsame Archiv wurde nicht geladen: Unknown Error
at line 18 of exec file called by :
at line 21 of exec file called by :
at line 131 of exec file called by :
at line 12 of exec file called by :
in execstr instruction called by :
end;gcbo = getcallbackobject(5);execstr(toolboxes(1));if exists("%oldgcbo") then gcbo =
%oldgcbo; else clear
while executing a callback
I choosed Atlas Library Option during Scilab install. What am I doing wrong ?
> atomsInstallList: das Paket IPD - 3.1 ist nicht verfügbar.
> !--error 10000
> at line 51 of function atomsError called by :
> at line 76 of function atomsInstallList called by :
> at line 257 of function atomsInstall called by :
The toolbox has not been compiled by the automatic compilation chain. Therefore, it can
not be downloaded by the Atoms GUI of Scilab.
> I extracted IPD.zip to scilab-5.2.0\contrib\ and tried to load, what I get is:
> IPD - Image Processing Design Toolbox 3.1
> link: Die Datei cxcore200.dll existiert nicht.
> !--error 236
> link: das gemeinsame Archiv wurde nicht geladen: Unknown Error
I have just downloaded the toolbox and I have extracted it to scilab-5.2.0\contrib\.
Everything works on my computer. I can not figure out where that problem comes from.
IPD.zip contains all necessary files.
> I choosed Atlas Library Option during Scilab install. What am I doing wrong ?
Ok - it's solved. Unfortunatly, I don't know why its working now... sorry
> Ok - it's solved. Unfortunatly, I don't know why its working now... sorry
Maybe that was a temporary Windows problem.
Maybe, Actually I was trying for some hours. Maybe just a restart or something that comes
with Visual Studio, I installed meanwhile. I'm working on 64bit System too.
Anyway: Great tool! Thank you.
Thanks for the great tools!
I've testing some of the features, and found the following problems:
1. Some images could not be read correctly using ReadImage. The shown image is "tilted".
An example could be downloaded from http://su.ntu.edu.sg/ICTF/index.php?q=node/15
link is reach by searching keyword "Malaysia" in Google Image Search, the twin tower
2. The CreateStructureElement('circle',5) gives error, but from the doc, the call seems
to be correct. (the square element is alright)
Thanks again for your contribution.
I just read the source code of CreateStructureElement.sci and I found that there is a typo
at line 70: "Witdth" must be replaced by "Width".
I am going to test ReadImage with the Malaysia image.
Both errors are corrected in version 3.2.