Woolz Image Processing  Version 1.8.3
WlzLineSkeleton.c File Reference

Functions to compute the line skeleton of an object's domain. More...

Data Structures

struct  _WlzLSDom
 
struct  _WlzLSNod
 A node entry in a node queue data structure used when computing a line skeleton segment. Typedef: WlzLSNod. More...
 
struct  _WlzLSNodQueue
 A queue of line segment nodes together with a table for accessing them by coordinate value. The slots of the hash table are allocated at creation of the queue and the queue/table entries are allocated in blocks. More...
 

Typedefs

typedef struct _WlzLSDom WlzLSDomEnt
 
typedef enum _WlzLSNodState WlzLSNodState
 
typedef struct _WlzLSNod WlzLSNod
 
typedef struct _WlzLSNodQueue WlzLSNodQueue
 

Enumerations

enum  _WlzLSNodState {
  WLZLS_NOD_NEW = 0,
  WLZLS_NOD_OPEN = 1,
  WLZLS_NOD_CLOSED = 2
}
 State of a node when computing a line skeleton segment. Typedef: WlzLSNodState. More...
 

Functions

WlzObjectWlzLineSkeleton (WlzObject *gObj, WlzErrorNum *dstErr)
 Computes and returns the line skeleton of the given object's domain. More...
 
WlzObjectWlzLineSkeletonSegment (WlzObject *gObj, WlzObjectType rObjType, WlzIVertex3 p0, WlzIVertex3 p1, WlzErrorNum *dstErr)
 Computes and returns the line skeleton segment between to given points in the given object's domain. This function is unlikely to be symetric so swapping the two points will probably give a different path. More...
 

Detailed Description

Functions to compute the line skeleton of an object's domain.

Author
Bill Hill
Date
July 2016
Version
Id
e78b9f0f380c47b89a1246bf8ddcb7f2513410e0
Address: MRC Human Genetics Unit, MRC Institute of Genetics and Molecular Medicine, University of Edinburgh, Western General Hospital, Edinburgh, EH4 2XU, UK.
Copyright (C), [2016], The University Court of the University of Edinburgh, Old College, Edinburgh, UK.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Todo:
The node priority queue is implemented as a simple doubly linked list that is sorted on insert. There are some hacks to guess nearby nodes and speed it up a little, but the queue is really inefficient and should be raplaced by something like AlcHeap().

Typedef Documentation

◆ WlzLSDomEnt

typedef struct _WlzLSDom WlzLSDomEnt

◆ WlzLSNodState

◆ WlzLSNod

typedef struct _WlzLSNod WlzLSNod

◆ WlzLSNodQueue

typedef struct _WlzLSNodQueue WlzLSNodQueue