Spatial convolution Top-Hat filter

2D Top-Hat filter. The Top-Hat filter is an isotropic smoothing filter. It can produce artifacts when applied repeatedly on the same data.

The top hat filter is designed to enhance or extract small, bright regions or structures in an image that are significantly smaller than the size of the filter’s structuring element. It is particularly useful for detecting localized objects or features against a relatively uniform background. It is an isotropic smoothing filter. It can produce artifacts when applied repeatedly on the same data. An exemplary kernel can be found below.

../../../../_images/tophat_kernel.png

Usage:

  1. Start the algorithm from the Processing Toolbox panel.

  2. Select the raster to process and modify the parameterization if necessary, then click run.

    ../../../../_images/tophat_filter_interface.png
  3. Processed image in comparison to the original.

    ../../../../_images/tophat_filter_result.png

Parameters

Raster layer [raster]

Raster layer to be filtered.

Kernel [string]

Python code. See Tophat2DKernel for information on different parameters.

Default:

from astropy.convolution import Tophat2DKernel
kernel = Tophat2DKernel(radius=1)
Normalize kernel [boolean]

Whether to normalize the kernel to have a sum of one.

Default: False

Interpolate no data pixel [boolean]

Whether to interpolate no data pixel. Will result in renormalization of the kernel at each position ignoring pixels with no data values.

Default: True

Outputs

Output raster layer [rasterDestination]

Raster file destination.

Command-line usage

>qgis_process help enmapbox:SpatialConvolutionTophatFilter:

----------------
Arguments
----------------

raster: Raster layer
    Argument type:  raster
    Acceptable values:
            - Path to a raster layer
kernel: Kernel
    Default value:  from astropy.convolution import Tophat2DKernel
kernel = Tophat2DKernel(radius=1)
    Argument type:  string
    Acceptable values:
            - String value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
normalize: Normalize kernel
    Default value:  false
    Argument type:  boolean
    Acceptable values:
            - 1 for true/yes
            - 0 for false/no
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
interpolate: Interpolate no data pixel
    Default value:  true
    Argument type:  boolean
    Acceptable values:
            - 1 for true/yes
            - 0 for false/no
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
outputRaster: Output raster layer
    Argument type:  rasterDestination
    Acceptable values:
            - Path for new raster layer

----------------
Outputs
----------------

outputRaster: <outputRaster>
    Output raster layer