About Attrasoft TransApplet

 

TransApplet is a .Net Class Library that enables System Integrators, Solution Developers, and Individuals to quickly add Image Recognition capability to their products and services. 

 

 

Software Requirements

 

The software requirements are:

 

 


 

 Installing the Software

 

Copying the “CD:\transapplet80” to the C-driver will complete the installation.

 

 

Information & Support

 

Attrasoft TransApplet

Attrasoft

P. O. Box 13051

Savannah, GA, 31406

USA

 

http://attrasoft.com

 

imagefinder@attrasoft.com (Email Subject: Attrasoft)

 

Phone:  (912) 484-1717

 

© Attrasoft 1998 - 2011

 

 


License Agreement

THIS LICENSE AGREEMENT ("AGREEMENT") IS BETWEEN YOU, THE END USER, AND Attrasoft. IT GOVERNS THE USE OF THE SOFTWARE PROGRAM AND DOCUMENTATION KNOWN AS Attrasoft TransApplet (THE "PRODUCT"). IF YOU USE THE PRODUCT, THEN YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY THE TERMS OF THIS AGREEMENT, PROMPTLY RETURN THIS PACKAGE TO THE PLACE OF PURCHASE WITH A COPY OF THE RECEIPT, AND YOUR LICENSE FEE WILL BE REFUNDED.

 

Attrasoft licenses use of the PRODUCT, which may be manufactured and distributed by Attrasoft or by a third party (either, the "Manufacturer"). You, the end-user, assume responsibility for the selection of the PRODUCT to achieve your intended results, and for its installation and subsequent use.

 

GRANT OF LICENSE

Attrasoft hereby grants you a non-exclusive license to use the PRODUCT in object code form only, upon the terms and conditions contained in this Agreement.

You may:

1. Use the PRODUCT on the number of workstations for which you have purchased PRODUCT licenses. The workstations must be owned, leased or otherwise controlled by you, whether in a network or other configuration.

2. Create a quantity of backup copies of the PRODUCT, in any machine-readable or printed form, equal to the number of PRODUCT licenses you have purchased.

3. Transfer the PRODUCT and your rights under this Agreement to another party if the other party agrees to accept the terms and conditions of this Agreement. If you transfer the PRODUCT, you must, at the same time, either transfer all copies of PRODUCT to the same party, or destroy any copies not transferred. You must immediately notify Attrasoft of the transfer.

4. Print out one copy of the Product documentation from the Attrasoft program, TransApplet, for each license purchased. If you print out any part of the Product documentation from the Attrasoft program, TransApplet, you must reproduce and include all the copyright notices that appear in the documentation on any such copy of the documentation.

 

You May Not:

1. Use or copy the PRODUCT, in whole or in part, except as expressly provided in this Agreement.

2. Use the PRODUCT concurrently on more than the number of workstations for which you have purchased licenses.

3. Copy, rent, distribute, sell, license or sub-license, or otherwise transfer the PRODUCT or this license, in whole or in part, to another party, except as specifically set forth above.

4. Incorporate the PRODUCT or any portion of the PRODUCT into, or use the PRODUCT, or any portion of the PRODUCT to develop, other software without a license from Attrasoft, or otherwise modify or create a derivative work from the PRODUCT without a license from Attrasoft.

5. Reverse engineer, decompile, or disassemble the PRODUCT.

 

To use the PRODUCT as described in Sections 2 or 4 above, or for any other use not specifically set forth above, additional licensing from Attrasoft is required. For further information, please contact Attrasoft at:

Attrasoft, Inc.     

Phone: (912) 484-1717

gina@attrasoft.com

 

PROPRIETARY RIGHTS

This Agreement gives you ownership only of the physical Attrasoft program, TransApplet, on which the PRODUCT is stored, but not of the PRODUCT itself. You acknowledge that Attrasoft owns all rights, title, and interest in the PRODUCT, and that you will acquire no rights in the PRODUCT through your use of it. You agree that you will take no action that interferes with Attrasoft's rights in the PRODUCT.

 

TERMS

This Agreement is effective until terminated. You may terminate it at any time by destroying the PRODUCT together with all copies and documentation in any form. This Agreement will also terminate automatically and without notice from Attrasoft if you fail to comply with any term or condition of this Agreement. You agree upon such termination to destroy the PRODUCT and all copies of the PRODUCT.

 

DISCLAIMER; LIMITED WARRANTY

EXCEPT AS PROVIDED BELOW, THE PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PRODUCT IS WITH YOU. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU. NEITHER ATTRASOFT NOR MANUFACTURER WARRANTS THAT THE FUNCTIONS CONTAINED IN THE PRODUCT WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE PRODUCT WILL BE UNINTERRUPTED OR ERROR-FREE. However, where Attrasoft is the Manufacturer, Attrasoft warrants that the Attrasoft program, TransApplet, on which the software is furnished will be free from defects in materials and workmanship under normal use for a period of ninety (90) days from the date of delivery as evidenced by a copy of your receipt.

 

LIMITATION OF REMEDIES

Where Attrasoft is the Manufacturer, Manufacturer’s entire liability and your exclusive remedy shall be:

1. The replacement of the Attrasoft program, TransApplet, not meeting the Limited Warranty, which is returned to Manufacturer with a copy of your receipt.

2. If Manufacturer is unable to deliver replacement Attrasoft program, TransApplet, which is free of defects in materials or workmanship, you may terminate this Agreement by returning the PRODUCT and a copy of your receipt to the place of purchase, and your money will be refunded. Where Attrasoft is not the Manufacturer, Attrasoft shall have no liability to replace or refund, and you agree to look to Manufacturer to meet the obligations described above.

 

LIMITATION OF LIABILITY

IN NO EVENT WILL ATTRASOFT OR MANUFACTURER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, ANY LOST PROFITS, LOST SAVINGS, OR OTHER INDIRECT, SPECIAL, EXEMPLARY, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF THE USE OR INABILITY TO USE THIS PRODUCT, EVEN IF ATTRASOFT OR MANUFACTURER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. FURTHER, IN NO EVENT WILL ATTRASOFT OR MANUFACTURER

BE LIABLE FOR ANY CLAIM BY ANY OTHER PARTY ARISING OUT OF YOUR USE OF THE PRODUCT. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

 

TRADEMARKS

Attrasoft is a trademark of Attrasoft, Inc. Microsoft, C# logo are registered trademarks of Microsoft Corporation. No rights, license, or interest in such trademarks is granted hereunder.

 

U.S. GOVERNMENT RESTRICTED RIGHTS IN DATA

This computer software product and documentation are provided with Restricted Rights. Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013, or subparagraphs (c)(1) and (2) of the Commercial Computer Software - Restricted Rights at 48 CFR 52.227-19, as applicable. Contractor/Manufacturer is Attrasoft, Inc.

 

EXPORT CONTROLS

You agree not to export or re-export the PRODUCT, directly or indirectly, to any countries, end-users or for any end uses that are restricted by U.S. export laws and regulations, without first obtaining permission to do so as required by the U.S. Department of Commerce's Bureau of Industry and Security, or other appropriate government agency. These restrictions change from time to time. If you have any questions regarding your obligations under U.S. export regulations, you should contact the Bureau of Industry and Security, U.S. Department of Commerce, Exporter

Counseling Division, Washington D.C. (202) 482-4811, http://www.bis.doc.gov.

 

 


TABLE OF CONTENTS

About Attrasoft TransApplet. 1

Software Requirements.. 1

Installing the Software.. 2

Information & Support. 2

License Agreement. 3

TABLE OF CONTENTS.. 6

1.   Introduction.. 13

1.1   What is TransApplet?. 13

1.2   Software Requirements. 13

1.3   Installing the TransApplet 13

1.4   Attrasoft TransApplet Class Library. 14

1.5   Linking the TransApplet 14

2.  Image Recognition Overview... 16

2.1   Attrasoft Image Recognition Basics. 16

2.2   Image Recognition Internal Structures. 16

3.  TransApplet Overview... 17

3.1   TransApplet  API. 17

3.2   User Interface. 17

3.3   Input & Display. 17

3.4   ImageFinderLite. 18

3.5   Signature Recognition. 18

3.6   Whole Image Matching. 18

3.7   Dynamic Library. 18

3.8   Image Segment Matching. 18

3.9   Videos. 18

3.10   Image Processing. 19

3.11   Customized Software. 19

4.   API 20

4.1   Image Signature. 20

4.2   Signature Filter. 22

4.3   Matching Results. 25

4.4   Whole Image Matching. 27

4.5   ImageLibrary. 28

4.6   Matching Engine. 30

4.7   NeuralNet Filter. 32

4.8   Other API. 33

5.    User Interface.. 34

5.1   How to Create a Project 34

5.2   How to Create Menus. 36

5.3   Link to Class Library. 37

5.4   Declare Objects. 38

6.   Input. 39

6.1   Class Library Name. 39

6.2   Class Library Overview.. 40

6.3   Set Up the Chapter Project 41

6.4   Link to Class Library. 42

6.5   Key Segment 43

6.6   Search Source Button. 45

7.   Image Display.. 47

7.1   Class Library Name. 47

7.2   Implementing H, >, and < Buttons. 48

7.3   Test 50

7.4   Output  Images. 50

8.   ImageFinderLite.. 51

8.1   ImageFinderLite. 51

8.2   Interface. 51

8.3   Programming Example. 53

8.4   Codes for Each of the Steps. 55

8.5   Test Run. 56

9.   Image Signatures.. 57

9.1   Signature Menu. 57

9.2   API. 58

9.3   TransApplet Objects. 61

9.4   Key Signature. 62

9.5   Signature File Concepts. 64

9.6   Signature File Implementation. 65

9.7   Examples. 65

10.   Whole Image Matching.. 67

10.1   Whole Image Matching Menu. 67

10.2   NeuralFilter API. 67

10.3   N:N Matching Implementation. 68

10.4   1:N  Matching Implementation. 69

11.   Binary Search.. 72

11.1   Signatures. 73

11.2   Search. 76

12.   Dynamic Library.. 80

12.1   Dynamic Library Menu. 80

12.2   Dynamic Library API. 81

12.3   Creating A Master Library. 82

12.4   Load Dynamic Library. 82

12.5   Library M:N Matching. 83

12.6   Library 1:N Matching. 85

12.7   Update Implementation. 86

13.   Image Variations.. 88

13.1   Variation Signatures. 88

13.2   Segments. 90

14.   Sub-Image Search.. 93

14.1   Sub-Images and Variations. 93

14.2   Search Process. 96

14.3   Learn by Example. 96

14.4   Implementation. 100

15.   Fast Sub-Image Matching.. 102

15.1   Fast Menu. 102

15.2   NeuralNet Filter API. 105

16.   Video Input. 106

16.1   Class Library Name. 106

16.2   Class Library Overview.. 107

16.3   Set Up the Chapter Project 107

16.5   Key Segment 108

16.6   Search Source Button. 109

17.   Whole Video Recognition.. 110

17.1   Project  Introduction. 110

17.2   Example. 113

17.3   Implementation. 114

18.   Video Frame Recognition.. 116

18.1   How to Use VideoFinder. 116

18.2   Implementation. 119

19.   Video Object Recognition.. 121

19.1   FrameFinder Functions. 121

19.2   Beginner Menu. 121

19.3   User Interface. 122

19.4   Implementation. 124

20.   Image Processing Concept. 125

20.1   Filters. 125

20.2   Image Preprocessing & Processing. 125

20.3   Normalization. 126

20.4   Neural Filter and Neural Net Filter. 127

20.5   Parameter Object 127

21.   Image Preprocessing.. 128

21.1   Image Preprocessing Filter. 129

21.2   PreProcessing API. 129

21.3   Enter Parameters. 131

21.4   Cut Off the Border Areas. 132

21.5   Impose a Mask. 132

21.6   Speed Up the Computation. 133

21.7   Skip the Empty Border by Content Percent 134

22.   Image Processing.. 136

22.1   Good & Bad. 136

22.2   Processing API. 138

22.3   Set Image Processing Filters. 140

22.4   First Two Settings. 141

22.5   Chapter Projects. 142

23.   Normalization.. 143

23.1   Class Library Name. 143

23.2   Class Library Overview.. 144

23.3   Link to Class Library. 145

23.4   Parameters. 146

24.   Parameter Class.. 148

24.1   Pushing Images Through Filters. 148

24.2   Predefined Objects. 149

24.3   Grouping Parameters Together. 150

24.4   Chapter Project 154

24.5   TransApplet Objects. 158

24.6   Selecting Filters. 159

24.7   Set Filter Parameters. 160

25.   Parameters.. 163

25.1   Overview.. 163

25.2   Image Preprocessing. 163

25.3   Image Processing. 165

25.3.1   Edge Filters. 165

25.3.2   Threshold Filters. 168

25.3.3   Clean-Up Filters. 169

25.4   Normalization Filter. 169

25.5   Unsupervised Filterand BioFilter. 171

25.6   Neural Filters. 173

25.7   NeuralNet Filter. 174

25.7.1   Symmetry. 175

25.7.2   Translation Type. 176

25.7.3   Scaling Type. 176

25.7.4   Rotation Type. 176

25.7.5   Area of Interest (AOI) 177

25.7.6   Blurring. 177

25.7.7   Sensitivity. 178

25.7.8   Internal/External Weight Cut 178

25.7.9   Segment Size. 179

25.7.10   Image Type. 179

25.7.11   Use BioFilter & Use Neural Filter 180

25.7.12   Auto Segment 180

25.7.13   Summary. 180

26. ImageFinder Support Service Packages.. 182

26.1   Basic Annual Maintenance & Support Package. 182

26.2   Process. 183

26.3   What is a Feasibility Study?. 183

26.4   Customization  Services. 184

   


 

1.   Introduction

 

Attrasoft TransApplet for Windows is a .Net Class Library that enables the addition of Image Recognition capability to products & services.  It can be used for:

 

 

1.1   What is TransApplet?

 

Attrasoft TransApplet for Windows is a .Net Class Library that enables the addition of Image Recognition capability to products & services. 

 

Before you continue, you should be familiar with the Attrasoft ImageFinder for two reasons:

 

 

The TransApplet will introduce the class library, “Attrasoft.TransApplet80”. This library is used in the ImageFinder. As a teaching tool, the TransApplet will show you how to build an ImageFinder via C# .Net. Therefore, if you have not learned the ImageFinder, you should start with the ImageFinder now.

 

The entire ImageFinder C# project is in the software. It is located in the ImageFinder subfolder. You can run the ImageFinder from there.

 

1.2   Software Requirements

 

The software requirements are:

 

 

In addition, we assume users understand C# or VB programming.

 

1.3   Installing the TransApplet

 

Copying the “CD:\transapplet80” to the C-driver will complete the installation. After copying, you should have both the Library Files and the Chapter Example.

 

1.4   Attrasoft TransApplet Class Library

 

The TransApplet library has many *.dll files:

 

C:\transapplet80\xyz80.dll

 

Each Library file has one main library, which has the same name as the file name:

 

Attrasoft.TransApplet80.xyz80

 

Each Library has one main class, which has the same name as the file name:

 

Attrasoft.TransApplet80.xyz80.xyz80

 

The advantage of making

 

class-name = library-name = file-name

 

is that you will know what to use. If you go to a file xyz80.dll, you will use Library, “Attrasoft.TransApplet80.xyz80”, and you will use class, xyz80. There is no guessing which class you should choose if the Library has more than one class.

 

The disadvantage is that the compiler will not be able to distinguish between the class-name and the Library-name unless you use the full name.

 

Xyz80 alone is not understandable by the C# compiler. To declare an object, you must use the full path:

 

Attrasoft.TransApplet80.xyz80.xyz80           myObject80;

 

Each chapter has a project. Many chapters may share the same project. These projects provide an integration source code so you can cut and paste to produce your own application.

 

1.5   Linking the TransApplet

 

To link to these Libraries:

 

 


 

2.  Image Recognition Overview

2.1   Attrasoft Image Recognition Basics

 

The Attrasoft Image Recognition Approach has two basic phases:

 

 

In matching whole images, a unique image signature is computed for each image. Different images will have different signatures. The Signature Matching is based on these image signatures. This matching can easily reach the speed of 100,000 to 1,000,000 whole images per second and is very fast.

 

In the Image Segment matching, image signatures may or may not be used. If no image signatures are used, the recognition speed is much slower.

 

Image Matching is further divided into filters. It is these filters that will perform the image matching tasks.

 

2.2   Image Recognition Internal Structures

 

An image recognition application is roughly divided into:

 

Level 5: User Interface;

Level 4: Data Management;

Level 3: Image-Matching Layer;

Level 2: Scanner, Camera, and their Drivers;

Level 1: PC with Windows.

 

The TransApplet Library will be used to implement the Image-Matching layer. Stand-alone software, like the Attrasoft ImageFinder, is roughly divided into 3 layers:

 

Level 3: User Interface;

Level 2: Image-Matching Layer;

Level 1: PC with Windows.

 

 

 


3.  TransApplet Overview

ImageFinder for Windows is an off-the-shelf Application Software that enables System Integrators, Solution Developers, and Individuals to quickly test their own Image Recognition ideas.

 

VideoFinder for Windows is an off-the-shelf Application Software that enables System Integrators, Solution Developers, and Individuals to quickly test their own video Recognition ideas.

 

TransApplet is .Net Class Library that enables System Integrators, Solution Developers, and Individuals to quickly add Image Recognition capability to their products and services.

 

This User’s Guide will show you how to build software like the ImageFinder using C# .Net. If you have not learned how use to the ImageFinder, you should start with the ImageFinder now.  The entire ImageFinder project is located in the ImageFinder sub-folder.

 

The TransApplet consists of a set of class libraries. Each chapter will introduce one of these libraries as you continue to build the “ImageFinder”. Some minor graphical user interface issues will be ignored here because it is already complicated enough.

 

3.1   TransApplet  API

 

Chapter 4, API, describes the API (Application Programming Interface) of the “Attrasoft.TransApplet80” Class Library.

 

3.2   User Interface

 

Chapter 5, User Interface, briefly describes how to set up the forms and the menu bar for the ImageFinder, and also how to link to class libraries.

 

3.3   Input & Display

 

Chapter 6, Input, briefly describes how to enter data to the ImageFinder. The input images are further divided into:

 

 

An image path specifies the training image. A search-folder specifies the Search Source.

 

Chapter 7 will also briefly describe how to display the images. The Image Display will play the following role:

 

 

3.4   ImageFinderLite

 

Chapter 8, ImageFinderLite, briefly describes how to build the software, ImageFinderLite.

 

3.5   Signature Recognition

 

Chapter 9, Image Signatures, will describe how to generate image signatures.

 

3.6   Whole Image Matching

 

Chapter 10, Whole Image Matching, will describe the steps for whole image matching.

 

Chapter 11, Binary Search, will describe the steps for binary whole image matching.

 

3.7   Dynamic Library

 

Chapter 12, Dynamic Library, introduces the dynamic library used in the ImageFinder. Dynamic Library allows the master library to be updated via insertion, deletion, and update.

 

3.8   Image Segment Matching

 

Chapter 13, Image Variation, will describe how to generate image signatures for some simple variations, such as rotation and flips.

 

Chapter 14, Sub-Image Matching, introduces the sub-image matching used in the ImageFinder.

 

Chapter 15, Fast Sub-Image Matching, gives a more options for matching sub-images.

 

3.9   Videos

 

Chapter 16, Video Input, briefly describes how to enter video data to the ImageFinder.

 

Chapter 17, Whole Video Matching, introduces matching with a whole video as a unit.

 

Chapter 18, Video Frame Matching, introduces matching with a video frame as a unit.

 

Chapter 19, Video Object Matching, introduces matching with an object inside a video frame as a unit.

 

 

3.10   Image Processing

 

Chapter 20, Image Preprocessing Concept, chapter 21, Image Preprocessing and chapter 22, Image Processing, introduces the image processing process required for the ImageFinder.

 

Chapter 23, Normalization, introduces image representation required for the ImageFinder.

 

Chapter 24 and Chapter 25 discuss the internal parameters in the ImageFinder.

 

3.11   Customized Software

 

Chapter 26, Development Process, introduces the Image Recognition Implementation Process using the TransApplet.


 

 

4.   API

 

This chapter will introduce the interfaces of the important classes and important functions. The interface for other classes will be introduced in the later chapters as they are used.

 

4.1   Image Signature

 

Whole Image Matching is done through Image Signature. An image has a set of computed values called features. A collection of features is grouped into a signature.

 

This section introduces the Image Signature interface. An Image Signature consists of the following attributes:

 

ID

Name (For example, xyz.jpg)

Path (c:\abc\)

Attribute 1

Attribute 2

 

The interface for Image Signature is:

 

public interface I_ImageSignature

            {

                        int getStatus ();

                        string getID();

                        string getImageName ();

                        string getImagePath();

                        string getAbsolutePath ();

                        int getNumberOfAttributes ();

                        int [] getSignatureAttributes();

                        int getSignatureAttributes (int index);

                        string toString ();

            }

 

The following table lists the functions.

 

Function

Descriptions

Comments

int getStatus ()

Returns the status associated with the signature.

Output:

1: signature ready.

0: signature not ready.

-1: no image

-2: image segmentation specification error

-3: other error.

 

 

 

 

 

string getID()

Returns the ID associated with the signature.

Output: image ID.

 

string getImageName ()

Returns the image name associated with the signature.

Output: image name.

 

string getImagePath()

Returns the image path associated with the signature.

Output: image path.

 

string getAbsolutePath ()

Returns the absolute path associated with the signature.

Output: image absolute path.

 

 

int getNumberOfAttributes ()

Returns the number of attributes associated with the signature.

Output: number of attributes.

 

int [] getSignatureAttributes()

Returns the attribute array associated with the signature.

Output: attribute array.

 

 

int getSignatureAttributes() (int index)

Returns the attribute associated with the input index.

Input: index.

Output: attribute associated with the input index.

 

 

string toString ()

Returns the entire image signature as a string with fields separated by Tab.

 

 

4.2   Signature Filter

 

Signature filter computes signatures in the TransApplet; the input is an image and the output is a signature.

 

The filter has two classes: Signature Generator and Signature Filter. The interface for Signature Generator is:

 

public interface I_SignatureGenerator

            {

                        bool setSignatureFilter (int x);

                        int getSignatureFilter ();

 

                        ImageSignature getSignature (Bitmap b);

                        int getSignatureFilterSize ();

 

                        string [] getSignatureFilterNames();

            }//class

 

The following table lists the functions.

 

Function

Descriptions

Comments

ImageSignature getSignature (Bitmap b)

Gets the signature of the input image.
Input:

   Bitmap b

Output:

   Signature.

 

int getSignatureFilterSize ()

Gets the number of attributes the library of signatures.

 

bool setSignatureFilter (int x)

 

int getSignatureFilter ()

 

Selects a Signature Generator.

 

 

The interface for Signature Filter is:

 

public interface I_SignatureFilter

            {

                        bool setSignatureFilter (int x);

                        int getSignatureFilter ();

 

                        string [] getSignatureFilterNames();

 

                        ImageSignature getSignature (string imagePath, string ID);

                        ImageSignature getSignature (string imagePath);

 

                        ImageSignature getSignature (Bitmap b, string ID);

                        ImageSignature getSignature (Bitmap b);

 

                        ImageSignature getSignature

( string imagePath, string ID,int x, int y, int w, int h);

                        ImageSignature getSignature

( Bitmap bImg, string path, string name, string ID,

int x, int y, int w, int h);

                       

                        bool getLibrary ( string [] imageAbsolutePath, string fileName );

                        bool getLibrary

( string [] imageAbsolutePath, string [] IDs, string fileName );

                       

                        bool getSegmentLibrary ( string [] imageAbsolutePath,

                                    string [] IDs,

                                    string [] xs,

                                    string [] ys,

                                    string [] ws,

                                    string [] hs,

                                    string fileName );

                       

                        bool getSegmentLibrary ( string [] imageAbsolutePath,

                                    string [] IDs,

                                    int [] xs,

                                    int [] ys,

                                    int [] ws,

                                    int [] hs,

                                    string fileName );       

            }//class

 

The following table lists the functions.

 

Function

Descriptions

Comments

bool setSignatureFilter (int x)

 

int getSignatureFilter ()

 

Selects a Signature filter.

 

string [] getSignatureFilterNames();

Gets a list of Signature filter names.

 

ImageSignature getSignature (string imagePath, string ID);

           

ImageSignature getSignature (string imagePath);

 

ImageSignature getSignature (Bitmap b, string ID);

 

ImageSignature getSignature (Bitmap b);

Gets the Signature of the input image.

 

ImageSignature getSignature

( string imagePath, string ID,int x, int y, int w, int h);

 

ImageSignature getSignature

( Bitmap bImg, string path, string name, string ID,

int x, int y, int w, int h);

Gets the Signature of the input image segment.


Input:

   string imagePath, or

   Bitmap bImg

   string ID

   int x, int y, int w, int h.

Output:

   Signature.

 

bool getLibrary

 ( string [] imageAbsolutePath,

string fileName );

 

bool getLibrary

( string [] imageAbsolutePath,

string [] IDs,

string fileName );

                       

bool getSegmentLibrary ( string [] imageAbsolutePath,

string [] IDs,

string [] xs,

string [] ys,

string [] ws,

string [] hs,

string fileName );

                       

bool getSegmentLibrary ( string [] imageAbsolutePath,

string [] IDs,

int [] xs,

int [] ys,

int [] ws,

int [] hs,

string fileName );

Generates a Signature library from all images in string [] imageAbsolutePath and produces a file that contains all signatures.

 

Input:

   string []   imageAbsolutePath

 

Output:

   A text file that contains the library of signatures.

 

 

4.3   Matching Results

 

Attrasoft ImageFinder matches whole images or image segments. The ImageFinder can be used for:

 

 

The results for N:N Matching always goes to a file. The results for 1:1 and 1:N Matching go to a data structure called Results_1N. The interface for class, Results_1N, is:

 

public interface I_Results_1N

                        {

                                    bool getStatus ();

                       

                                    int getNumberOfMatches();

 

                                    string getImageID (int i) ;

                                    string [] getImageID () ;

                                    string [] getImageID_N ( int N );

                                   

                                    string getScore(int i);

                                    string [] getScore();

                                    string [] getScore_N ( int N );

 

                                    string getImageName (int i) ;

                                    string [] getImageName () ;

                                    string [] getImageName_N ( int N ) ;

 

                                    string getImagePath (int i) ;

                                    string []getImagePath () ;

                                    string [] getImagePath_N ( int N ) ;

 

                                    string getX(int i);

                                    string [] getX();

                                    string [] getX_N ( int N );

 

                                    string getY(int i);

                                    string [] getY();

                                    string [] getY_N ( int N );

 

                                    string getW(int i);

                                    string [] getW();

                                    string [] getW_N ( int N );

 

                                    string getH(int i);

                                    string [] getH();

                                    string [] getH_N ( int N );

 

                                    Results_1N sort ();

 

                                    string toString ();

                        }

 

The following table lists the functions.

 

Functions

Descriptions

Comments

int getStatus ()

Returns the status of the current signature comparison:

> 0: OK;

< 0: Error.

 

int getNumberOfMatches()

Returns the number of matches of the current signature comparison.

 

string getImageID (int i) string [] getImageID ()

string [] getImageID_N

( int N )

Returns the matching IDs of the current signature.

 

string getScore(int i)

string [] getScore()

string [] getScore_N

( int N )

Returns the matching scores of the current signature.

 

string getImageName

(int i)

string [] getImageName ()

string [] getImageName_N ( int N )

Returns the matching names of the current signature.

 

string getImagePath (int i)

string []getImagePath ()

string [] getImagePath_N

 ( int N )

Returns the matching paths of the current signature.

 

string getX(int i)

string [] getX()

string [] getX_N ( int N )

string getY(int i)

string [] getY()

string [] getY_N ( int N )

string getW(int i)

string [] getW()

string [] getW_N ( int N )

string getH(int i)

string [] getH()

string [] getH_N ( int N )

Returns the matching (x, y, w, h) of the current signature.

 

string toString ()

Returns the entire results as a string with fields separated by Tab.

 

 

4.4   Whole Image Matching

 

NeuralFilter also matches two whole images. The interface for NeuralFilter is:

 

public interface I_NeuralFilter

            {

bool training ( string a1_txt, string match_txt);

 

                        Attrasoft.TransApplet80.Results_1N .Results_1N findMatch11

                                    ( Attrasoft.TransApplet80.ImageSignature80.ImageSignature sig1,

                                    Attrasoft.TransApplet80.ImageSignature80.ImageSignature sig2);

 

                        Attrasoft.TransApplet80.Results_1N .Results_1N findMatch11

(string path1, string path2);

                        Attrasoft.TransApplet80.Results_1N .Results_1N findMatch11

(Bitmap left, Bitmap right);

                       

                        Attrasoft.TransApplet80.Results_1N.Results_1N findMatch1N

                                    (Attrasoft.TransApplet80.ImageSignature80.ImageSignature sig,

 string a1File, string b1File);

                        Attrasoft.TransApplet80.Results_1N.Results_1N findMatch1N

(string keyuPath, string a1File, string b1File);

                        Attrasoft.TransApplet80.Results_1N.Results_1N findMatch1N

(Bitmap keyImage, string a1File, string b1File);

                       

                        bool findMatchNN (string a1File, string b1File);

                        bool findMatchNM (string a1File, string a2File, string b1File);

            }

 

 

The following table lists the functions.

 

Functions

Descriptions

bool training ( string a1_txt, string match_txt)

Trains the BioFilter.

Attrasoft.TransApplet80.Results_1N .Results_1N

findMatch11

 ( Attrasoft.TransApplet80.ImageSignature80.ImageSignature sig1,

Attrasoft.TransApplet80.ImageSignature80.ImageSignature sig2);

 

Attrasoft.TransApplet80.Results_1N .Results_1N findMatch11

(string path1, string path2);

 

Attrasoft.TransApplet80.Results_1N .Results_1N findMatch11 (Bitmap left, Bitmap right);

Makes a 1:1 matching

Attrasoft.TransApplet80.Results_1N.Results_1N findMatch1N

(Attrasoft.TransApplet80.ImageSignature80.ImageSignature sig,  string a1File, string b1File);

 

Attrasoft.TransApplet80.Results_1N.Results_1N findMatch1N (string keyuPath, string a1File, string b1File)

 

Attrasoft.TransApplet80.Results_1N.Results_1N findMatch1N

(Bitmap keyImage, string a1File, string b1File)

Makes a 1:N matching

bool findMatchNN (string a1File, string b1File);

bool findMatchNM (string a1File, string a2File, string b1File);

Matches all image signatures in file a1File against all image signatures in a1File or a2File and saves the results to b1File.

 

4.5   ImageLibrary

 

Dynamic Library allows the library (N images in a 1:N Matching) to be updated via insertion, deletion, and update.

 

The interface for Image Library filter is:

 

public interface I_ImageLibrary

            {

                        string getLibraryID ();

                        bool setLibraryID (string x);

 

                        bool load ();