[comp.ai] Pattern Matching Question

kppicott@watcgl.waterloo.edu (Dewey Duck) (07/22/88)

Hi,

I am working on computer graphics and I recently ran into a problem that some
of you might be able to help me with.  It is basically a problem in pattern
matching.  I want to take as input, a collection of x,y points.  From this
collection I would like to be able to decompose the points into maximal
curve sections.  In general, I want to take a line drawing, digitize it using
some standard picture digitizing device, section the bitmap into groups of
points which represent single curves, represent these curves in a different
form and process those curves further.  I can do all but the sectioning.
As I see it I have two options at this point.  Either section the curves as
I've described above, or have a user sit there and mark the dots to be included
in each curve.  I do not want to do the latter if it can be avoided at all
(mainly because the user will end up being me).

So, here is the question part.  Is there any research out there that has
addressed and/or solved this class of problem?  I would appreciate it if
anyone could either tell me how it's done, tell me that it can't be done, or
point me in the correct direction to look into this further.  As I said
before, I am a graphics person and haven't run into this class of problem
so I am totally unaware of what has been done in this area.  Any little bit
of information would help greatly.

Thanks.  I will summarize any responses,

--- Kevin Picott, Dept. of CS, U. of Waterloo

 _____________________
(_)________________   \
  ________________|\   \UUCP:  [uunet!]watmath!watcgl!kppicott
 (_)______________\_\   \
   ______________________\*-NET:  kppicott@watcgl.waterloo.{edu, ca, cdn}
  (_)____________________|


example:

bitmap is:
                                                                             
                    .                                                        
                     .                                                       
                      .                                                      
                       ..                .                   ...             
                         ..              .                 ..                
                           ...           .                .                  
                              ....        .             ..                   
                                  ......  .       ......                     
                                        ..........                           
                                           .                                 
                                           .                                 
                                           .                                 
                                           .                                 
                                            .                                
                                            .                                
                                            .                                
                                            .                                
                                            .                                
                                                                             
Resultant patterns are:

                    .                                                        
                     .                                                       
                      .                                                      
                       ..                *                   ...             
                         ..              *                 ..                
                           ...           *                .                  
                              ....        *             ..                   
                                  ......  *       ......                     
                                        ..*.......                           
                                           *                                 
                                           *                                 
                                           *                                 
                                           *                                 
                                            *                                
                                            *                                
                                            *                                
                                            *                                
                                            *                                
where one curve is '*' and another is '.'.  These points are fed into a bezier
curve-maker as a unit.  (I have a program that can do this.)

Am I correct in my assumption above.  If not, I would appreciate any further
references you could give me.  I do not have access to a Mac, so looking at
the program myself is not an option at the moment.

Thanks,
--- Kevin Picott --- kppicott@watcgl.waterloo.edu