IPREAD_FILTER Function
Reads an ASCII text or XDR file depending on whether the file contains a spatial or spectral filter (respectively).
Usage
result = IPREAD_FILTER(filename)
Input Parameters
filename—A scalar string containing the name of the filter file.
Returned Value
result—An associative array containing the filter object. The filter object associative array is described as follows:
For a spatial filter, the filter object has three strings containing the key names of elements of the associative array:
'kernel'—A 2D array of the filter spatial values.
'domain'—A string set to
'SPATIAL'.
'scale'—The scale factor.
For a spectral filter, the filter object has ten strings containing the key names of elements of the associative array:
'kernel'—A 2D array of the filter spectral values.
'domain'—A string set to
'SPECTRAL'.
'cutoff'—A one-element array (for highpass and lowpass filters), or a two-element array (for bandpass and bandstop filters) containing the filter cutoff frequency, or frequencies.
'pass'—A string indicating the filter type:
'low',
'high',
'stop',
'band', or
'notch'. 'dc_offset'—A float value containing the filter DC offset.
'co_frac'—A float value containing the fraction of the maximum filter value at the cutoff frequency.
'maximum'—A float value containing the maximum filter amplitude.
'type'—A string indicating the filter type:
'ideal', or
'Butterworth'.
'xloc'—(For notch filters only.) The
x-location of the filter center.
'yloc'—(For notch filters only.) The
y-location of the filter center.
'center'—If set, the filter center is at the center of the array.
'order'—(For Butterworth filters only.) A floating point value indicating the filter order.
Keywords
None.
Discussion
There are many filter files provided with the Image Processing Toolkit. The files are located in the following directories:
(UNIX) ip-1_0/data/kernel/*.ker
ip-1_0/data/filter/*.flt
(WIN) ip-1_0\data\kernel\*.ker
ip-1_0\data\filter\*.flt
The file format for the spatial filter files provided and for user-written spatial filter files must conform to the following conventions:
Comments begin with a semicolon.
The first un-commented line in the file is the data type of the filter weights. This line is one of the following valid strings:
'byte',
'int',
'long',
'float', or
'double'.
The next un-commented line contains the dimensions of the kernel, with the
x-dimension listed first, followed by the
y-dimension.
Next is the list of space and/or line feed-separated kernel values.
Finally, the scale factor, if present, appears. The scale factor is a floating point value.
For spectral filters, the file format is simply the associative array saved in XDR format.
Example
In this example, the IPREAD_FILTER function is used to read in the Frei-Chen column edge gradient kernel from the directory of files provided with the Image Processing Toolkit.
freichen = IPREAD_FILTER(!IP_Data + '/kernel/' + $
'freichen_c3.ker')
result = IPCONVOL(image, freichen)
See Also