Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Image Processing Design Toolbox details
Login with GitLab

Image Processing Design Toolbox

This toolbox implements functions for object detection.
(3502 downloads for this version - 290529 downloads for all versions)
Details
Version
5.0
A more recent valid version exists: 8.3.3
Author
Dr. Eng. (J) Harald Galda
Owner Organization
private individual
Maintainer
Harald Galda
Category
License
Creation Date
March 26, 2010
Source created on
Scilab 5.2.x
Binaries available on
Scilab 5.2.x:
Windows 32-bit
Install command
--> atomsInstall("IPD")
Description
            IPD - Image Processing Design Toolbox Version 5.0
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

2. Thresholding
   - segmentation by threshold
   - threshold calculation by Otsu method

3. Morphological filters
   - dilation
   - erosion
   - closing
   - opening
   - 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
   - display
   - 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

11. Linear filteration

12. Variance filter

13. Texture feature calculation
   - Laws texture energy
   - discrete Wavelet frames


Changes between version 4.0 and version 5.0
   - constants defined in IPD.start implemented as global variables
   - stack is increased to maximum size before libraries are loaded 
      
      
This version uses OpenCV 2.0 which is available for download at

     opencv.willowgarage.com/wiki/

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
Library.

The libraries of theses toolbox have been compiled using Microsoft Visual 
Studio 2008 Express Edition. If error messages occure when loading the 
toolbox, you might consider installing the express edition of Microsoft 
Visual Studio, which is availabe free of charge at www.microsoft.com.

If you have another C++ compiler installed on your computer, please download 
and build OpenCV 2.0. Please replace the files

    cxcore200.dll
    cv200.dll
    highgui200.dll

in the directory 

   contrib\IPD-5.0\sci_gateway\cpp

and the files

   cxcore200.lib
   cv200.lib
   highgui200.lib

in the directory

   contrib\IPD-5.0\sci_gateway\cpp

by the corresponding files created by your C++ compiler.
            
Files (3)
[2.62 kB]
32
This file contains a description of the toolbox.
[6.22 MB]
Windows 32-bit binary for Scilab 5.2.x
Mise à jour du fichier de Description.
[3.19 MB]
Source code archive
This ZIP file contains the sources and the Windows versions of external library
files.
News (19)
Comments (8)     Leave a comment 
Comment from Administrator ATOMS -- March 29, 2010, 08:56:43 AM    
Hi Harald,

I've always errors with unknown variables:

DrawBoundingBoxes(BlobStatistics, [1 0 0], OriginalFigure);   
 !--error 4 
Variable non définie: CONVERSION_RGB2GRAY

at line      60 of function RGB2Gray called by :  
Image = RGB2Gray(RGB);
at line      55 of exec file called by :    
mo_gui_update();exec(script_path,-1);;if exists("%oldgcbo") then gcbo = %old
while executing a callback


Is this version (5.0) be supposed to be ATOMS compliant?

Pierre
Answer from Harald Galda -- March 29, 2010, 09:36:16 AM    
Hi Pierre,

this version is supposed to be ATOMS compliant, hence the declarations of global variables.


I installed this version with Scilab 5.2.1 today. When I load the toolbox by atomsLoad, I
get the following results:

-->atomsLoad('IPD')

 
 IPD - Image Processing Design Toolbox 5.0   
gemeinsame Bibliothek geladen.
Verkettung durchgeführt.
gemeinsame Bibliothek geladen.
Verkettung durchgeführt.
gemeinsame Bibliothek geladen.
Verkettung durchgeführt.
gemeinsame Bibliothek geladen.
Verkettung durchgeführt.

 !--error 21 
ungültiger Index.

at line     337 of function atomsLoad called by :  
atomsLoad('IPD')

"ungültiger Index" means "invalid index". The online help and the demos exist, but the
function ReadImage is not found, even though libIPD.dll is loaded without an error. I have
no idea where this "invalid index" comes from. It seems that I have to check each file
manually for missing global variable declarations.

Harald
Comment from Samuel Gougeon -- May 5, 2010, 05:52:31 PM    
Hello Harald,

I was discovering the IPD demos. If i may, here are some suggestions to little improve 
watching of resulting images:
* IMO, when a demo yields several images, it would be nice to display all of them in a
unique subplotted window, instead of opening N different windows that overlay each other.
* As well, it would be much more practical to use figure #100001, which is the standard
one (the most used) for demos. Then, docking this window arising from IPD or from another
module, it will be stable, instead of opening a new undocked window (you may try all the
demos (graphics, etc)). See also http://bugzilla.scilab.org/show_bug.cgi?id=6973
* in VideoDisplay.sce: inserting drawlatter() line #46 and drawnow() at the end of the
loop content improves a lot the video display.

I hope this may help,

Regards
Samuel
Comment from Dominique d\\\'Inverno -- May 6, 2010, 11:40:27 PM    
Dear Harald,


This e-mail to report you a problem I just encountered :

Functions "SeparableFilter" and "MaskFilter" seem to not release some internal memory 
after returning.
When invoking them multiple times, I can see windows system memory growing constantly, 
until following bug message arises :
---------------------------------------------------------
Warning !!!
Scilab has found a critical error (Unknown exception)
with "libIPD" function.
Save your data and restart Scilab.
                                       !--error 115 
Problème de pile détecté pendant une boucle.
Une fonction primitive a été appelée avec un mauvais nombre d'arguments de sortie.
Aucun test sur les arguments de sortie n'a été fait dans cette fonction.
Rapportez ce bug s'il vous plaît :

http://bugzilla.scilab.org/index.cgi
-----------------------------------------------------------
My Scilab version is 5.2.2 (with Atlas library).

Aside of this, thanks for bringing in this valuable toolbox.

Best Regards,
Dominique
Comment from Frédéric Zalewski -- May 11, 2010, 04:16:10 PM    
I can't read any pictures but the demos work (and the image reading works for them) :

-->RGB = ReadImage('shadow_before.png');
 !--error 4 
Variable not defined: Dimensions

at line      72 of function ReadImage called by :  
RGB = ReadImage('shadow_before.png');
 
 
-->[pl D] = ReadImageFile('shadow_before.png');
 
-->D
  !--error 4 
Variable not defined: D
 
-->pl
 pl  =
 
 shadow_before.png   
 
 
-->RGB = matrix(pl, [216;384;3]);
 !--error 10000 
MATRIX: input and output matrices  must have the same number of elements
at line      35 of function %hm_matrix called by :  
RGB = matrix(pl, [216;384;3]);



 gobal EDGE_SOBEL;   
 
 RGB = ReadImage('teaset.png');   
 
 Image = RGB2Gray(RGB);   
 
 figure(); ShowImage(Image, 'Intensity Image');   
Answer from Harald Galda -- May 14, 2010, 12:14:51 PM    
I just created a random image with 384 columns and 216 rows. ReadImage works without any 
problems. Therefore, I can not reproduce that bug, at least not with version 5.0.

Answer from Hale Hale -- December 24, 2010, 10:21:25 AM    
Have the same problem.
No example from help works.

(read below my thread)

Latest versions.
Answer from Samuel Gougeon -- March 1, 2011, 02:14:55 PM    
> -->RGB = ReadImage('shadow_before.png');
>  !--error 4 
> Variable not defined: Dimensions
> 
> at line      72 of function ReadImage called by :  
> RGB = ReadImage('shadow_before.png');


I have the same error message with IPD 8.0-1 BUT only with GIF images.
For JPG, PPM, PNG, i have not get any problem.

Regards
Comment from Rajan Gurjar -- August 14, 2010, 01:29:39 PM    
Hi Harald,
Thanks for the IPD. It is very useful.
I have few questions.

1. Does IPD use SIVP? Or are they exlusive.

2. I have installed both. However, I am getting issues with imread('*.tif') files.
  I have stored images in 16bits.

When I use either IPD or SIVP, I get the images with only 8 bit depth.

But if I use ImageJ program from NIH, I get the correct values.

However, performing custom math with ImageJ is not easy as its script language is not
familiar to me. I prefer Scilab with IPD and SIVP.

I will appreciate your inputs.
THanks
Rajan
Answer from Harald Galda -- August 15, 2010, 11:06:00 AM    
Hi Rajan,

these are my answers:

> 1. Does IPD use SIVP? Or are they exlusive.


IPD and SIVP are independant of each other.

> 2. I have installed both. However, I am getting issues with imread('*.tif') files.
>   I have stored images in 16bits.
> 
> When I use either IPD or SIVP, I get the images with only 8 bit depth.


IPD and SIVP use function provided by OpenCV for loading images and these functions do not
support 16 bit images.

> But if I use ImageJ program from NIH, I get the correct values.
> However, performing custom math with ImageJ is not easy as its script language is not
> familiar to me. I prefer Scilab with IPD and SIVP.


This is why I developped IPD in the first place.

Harald
Comment from Rajan Gurjar -- August 14, 2010, 05:57:09 PM    
Hi Harald,
I am sorry to leave many messages on this board. I wish there was another way to contact
you.
But this particular inquiry also goes to the developer of SIVP if they happen to read on
this website.

Here is my issue:

OpenCV's highgui library currently loads TIFF files using libtiff's TIFFReadRGBAImage()
function. However, this function only supports TIFF files using 8-bit sample formats.

My work involves working with TIFF gray scale images with either IEEE floating-point or 16
or 32 bit integer formats. I'd be interested in adding the functionality to highgui,
wherein OpenCV can load and save 16-32 bits integer formatted images. I will appreciate
any inputs.
Thanks
Answer from Harald Galda -- August 15, 2010, 10:58:14 AM    
Hi Rajan,

please contact the OpenCV developpers concerning functions for image loading and saving.
IPD depends on OpenCV.

Harald
Comment from abdul razak -- August 20, 2010, 04:26:33 AM    
hi dr harald,
i'm starting on image processing and came across IPD.
i've just installed scilab 5.2.2 with IPD 5.0 on Windows 7.
i'm just wondering why scilab closes down whenever i issued these commands:

------(here's the commands capture)------
Startup execution:
  loading initial environment

 
 IPD - Image Processing Design Toolbox 5.0   
Shared archive loaded.
Link done.
Shared archive loaded.
Link done.
Shared archive loaded.
Link done.
Shared archive loaded.
Link done.

-->RGB = ReadImage('contrib\IPD-5.0\demos\teaset.png'); 

-->figure(); ShowColorImage(RGB, 'Color Image');

------(end of commands capture)------

am i missing any commands/parameter? thanks so much.
Comment from delna kv -- February 25, 2016, 04:43:51 PM    
hai,
i am currently working in scilab, i need to write mulitiple images to a particular 
folder.Can anybody help ,me?

The error is

with "sivp" function.
Save your data and restart Scilab.
end
 !--error 115 
Stack problem detected within a loop.
A primitive function has been called with a wrong number of output arguments.
No output argument test has been made for this function.
Please report this bug :
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.