Lineament extraction

EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Example :: Algorithm

Back to top


LINE extracts linear features from an image and records the polylines in a vector layer. Although this module is designed for extracting lineaments from radar images, it can also be used on optical images to extract curve-linear features.
Back to top


Name Type Caption Length Value range
FILI* String Input file name 1 - 192  
FILO* String Output file name 1 - 192  
DBIC* Integer Input raster channel(s) or layer(s) 1 - 1  
DBOC Integer Output image channel or layer 0 - 1  
DBVS Integer Extracted lineaments segment or layer 0 - 1  
RADI Integer Radius of filter (pixels) 0 - 1 Default: 10
GTHR Integer Threshold for edge gradient 0 - 1 Default: 100
LTHR Integer Threshold for curve length 0 - 1 Default: 30
FTHR Integer Threshold for line fitting error 0 - 1 Default: 3
ATHR Integer Threshold for angular difference 0 - 1 Default: 30
DTHR Integer Threshold for linking distance 0 - 1 Default: 20
MONITOR String Monitor mode 0 - 3 ON, OFF
Default: ON

* Required parameter
Back to top

Parameter descriptions


Specifies the PCIDSK file containing the input image channel to process.


Specifies the PCIDSK file to receive the output vector segment and the processed image channel.


Specifies the input image channel or layer to process.


Specifies an optional output channel to receive the binary edge image (thresholded gradient).


Specifies a vector segment to receive the extracted lineaments.

If this parameter is not specified, a new vector segment is created by default.


Specifies the radius of the edge detection filter, in pixels. This parameter roughly determines the smallest-detail level in the input image to be detected. A large RADI (Filter Radius) value indicates that less detail can be detected, and also less noise. The default value is 10.


Specifies the threshold, in pixels, for the minimum gradient level for an edge pixel. This value must be in the range of 0 to 255; the default value is 100.


Specifies the minimum length of curve, in pixels, to be considered as lineament or for further consideration; for example, linking with other curves. The default value is 30.


Specifies the maximum error, in pixels, allowed when fitting a polyline to a pixel curve. Lower values provide better fitting, but also shorter segments in the polyline.


Specifies the maximum angle, in degrees, between segments of a polyline. If the angle exceeds the specified maximum, the polyline is segmented into two or more vectors. This angle also defines the maximum angle between two vectors for them to be linked. The default value is 30.


Specifies the minimum distance, in pixels, between the end points of two vectors for them to be linked. The default value is 20.


The program progress can be monitored by printing the percentage of processing completed. A system parameter, MONITOR, controls this activity.

Available options are:

Back to top


LINE extracts linear features from an image and records the polylines in a vector segment. LINE is designed for extracting lineaments from radar images. It can, however, also be used on optical images to extract curve-linear features.

LINE takes a single image channel as input. If the input channel is 16- or 32-bit, the image is first scaled to 8-bit using a nonlinear scaling routine. The output of LINE is a vector segment which contains linear features as extracted from the image. If DBOC (Output Binary Edge Image) is specified, a binary edge image (the result of thresholding the gradient) is saved in the specified channel.

RADI (Filter Radius) specifies the size of the Gaussian kernel used as a filter during edge detection. The larger the RADI value, the less noise and detail appear in the edge detection result.

The value for thresholding the gradient image is define by the GTHR (Edge Gradient Threshold) parameter. This value must be in the range of 0 to 255. You may experiment with different GTHR values and select one that produces a suitable output binary image. If the ON pixels in the image appear too sparse, decrease the GTHR value. If, however, the ON pixels appear dense and noisy, increase the GTHR value. It is important to have sufficient information in the edge image, as the subsequent lineament extraction process is based on this edge image as input.

Various other parameters control the curve extraction process. FTHR (Line Fitting Threshold) defines the tolerance for fitting line segments to a (curved) lineament. This value is specified in number of pixels. A lower value results in many shorter line segments that better approximate the lineament; a larger value, however, provides better noise averaging, resulting in longer, straighter lineaments. Typically, a value between 2 and 3 is ideal. LTHR (Curve Length Threshold) specifies the minimum length of a curve (in pixels) to be considered as lineament for further consideration. ATHR (Angular Difference Threshold) defines the maximum angle (in degrees) between two vectors for them to be linked. DTHR (Linking Distance Threshold) specifies the maximum distance (in pixels) between two vectors for them to be linked.

About lineaments

A lineament is usually defined as a straight or somewhat-curved feature in an image. In a satellite image, lineaments can be the result of man-made structures such as transportation networks (roads, canals, etc.), or natural structures such as geological structures (faults/fractures, lithological boundaries, unconformities) or drainage networks (rivers). Because many mineralization zones occur near fracture zones, lineaments are useful for locating these.

A lineament is distinguishable by the change in image intensity as measured by gradient. By applying edge detection filters to the image, a numerical method for lineament detection can be constructed. This method, however, is not as accurate as the human visual system, which is highly efficient at extrapolating linear features. Thus, to the human eye, a lineament that varies in intensity along its length may be viewed as a single long lineament, whereas to a numerical method, the same lineament may appear as several short lineaments. Thus, a numerical method for extracting lineaments must be robust and allow for gradual or sudden changes in gradient along the lineament, and also for minor changes in direction.

The lineament extraction algorithm implemented here takes these problems into account when extracting linear features from an image. The algorithm consists of three steps. First, an edge-detection operator is applied to the image, producing a gradient image. (Note: all 16-bit or 32-bit input images are first scaled to 8-bit, using a nonlinear scaling routine). Second, the gradient image is thresholded to create a binary edge image. Finally, linear features are extracted from the binary edge image. This last step contains many substeps, such as edge thinning, curve pruning, recursive curve segmentation, and proximity curve linking.

Back to top


Extract lineament from a radar image (irvine.pix, channel 11).

EASI>FILI = "irvine.pix"
EASI>FILO = fili
EASI>DBVS =           ! create new segment

Back to top


The algorithm of LINE consists of three stages:

In the first stage, the Canny edge detection algorithm is applied to produce an edge strength image. The Canny edge detection algorithm has three substeps. First, the input image is filtered with a Gaussian function whose radius is provided by the RADI (Filter Radius) parameter. Then, the gradient is computed from the filtered image. Finally, pixels whose gradient are not the local maximum are suppressed by setting the edge strength to 0.

In the second stage, the edge strength image is thresholded to obtain a binary image. Each ON pixel of the binary image represents an edge element. The threshold value is defined by the GTHR (Edge Gradient Threshold) parameter.

In the third stage, curves are extracted from the binary edge image. This step consists of several substeps. First, a thinning algorithm is applied to the binary edge image to produce pixel-wide skeleton curves. Then, a sequence of pixels for each curve is extracted from the image. Any curve with a number of pixels less than the value of the LTHR (Curve Length Threshold) parameter is discarded from further processing. An extracted pixel curve is converted to vector form by fitting line segments to it. The resulting polyline is an approximation of the original pixel curve, where the maximum fitting error (distance between the two) is specified by the FTHR (Line Fitting Threshold) parameter. Finally, the algorithm links pairs of polylines that satisfy the following criteria:
  1. two end-segments of the two polylines face each other and have similar orientation (the angle between the two segment is less than the value specified by ATHR)
  2. the two end-segments are close to each other (the distance between the end points is less than the value of DTHR)

The final polylines are saved in a vector segment.

© PCI Geomatics Enterprises, Inc.®, 2024. All rights reserved.