rank_rect — 使用矩形掩模计算秩滤波。
rank_rect(Image : ImageRank : MaskWidth, MaskHeight, Rank : )
rank_rect performs a rank filter on the input image
Image with a rectangular mask of size MaskWidth
× MaskHeight and returns the filtered image
in ImageRank。
Conceptually, the rank filter sorts all gray values within the mask
in ascending order and then selects the gray value with rank
Rank. The rank 1 corresponds to the smallest gray value
and the rank MaskWidth * MaskHeight
corresponds to the largest gray value within the mask. For
Rank = (MaskWidth *
MaskHeight - 1) / 2 + 1, rank_rect returns the
median gray value (see median_rect). For Rank = 1, rank_rect performs a gray value
erosion (see gray_erosion_rect, gray_erosion_shape,
and gray_erosion), while for Rank =
MaskWidth * MaskHeight rank_rect
performs a gray value dilation (see gray_dilation_rect,
gray_dilation_shape, and gray_dilation).
rank_rect can be used, for example, to suppress noise or to
suppress unwanted objects that are smaller than the mask.
Furthermore, rank_rect is less sensitive to noise than the
corresponding gray value morphology operators. Therefore, to obtain
a more robust version of the gray value morphology, instead of using
1 or MaskWidth * MaskHeight,
slightly larger or smaller values should be selected for
Rank。
有关平滑滤波器概念的说明,请参阅 滤波器 / 平滑 一章的引言。
If even values instead of odd values are passed in
MaskHeight or MaskWidth, rank_rect uses
the next larger odd values instead.
rank_rect uses an algorithm with constant runtime per pixel,
i.e., the runtime only depends on the size of the input image and
not on the mask size. Therefore, for large mask sizes
rank_rect is the fastest implementation of the rank filter
in HALCON. Depending on the computer architecture (processor type,
availability of SIMD instructions like SSE2 or MMX, cache size and
throughput, memory throughput), for small mask sizes the
implementation used in rank_image is faster than
rank_rect. Typically, this is the case for
MaskHeight 15, but can also happen for larger
mask sizes, e.g., if SIMD instructions are unavailable and memory
throughput is low.
Furthermore, it should be noted that rank_rect uses a
recursive implementation, which internally computes the filter
response on the smallest enclosing rectangle of the domain of the
input image. Therefore, if the domain of the input image only
covers a small fraction of the smallest enclosing rectangle, it can
happen that rank_image is faster than rank_rect even
for larger values of MaskHeight。
rank_rect should neither be used with Rank = 1 to perform a gray value erosion nor with
Rank = MaskWidth *
MaskHeight to perform a gray value dilation. In these
cases, the operators gray_erosion_rect or
gray_erosion_shape and gray_dilation_rect or
gray_dilation_shape, respectively, are faster than
rank_rect for almost all mask sizes.
请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章
Image (输入对象) (multichannel-)image(-array) → object (byte)
Image to be filtered.
ImageRank (输出对象) (multichannel-)image(-array) → object (byte)
滤波后的图像。
MaskWidth (输入控制) integer → (integer)
Width of the filter mask.
默认值: 15
建议值: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 31, 49, 51, 61, 71, 81, 91, 101
值范围:
3
≤
MaskWidth
≤
4095
最小增量: 2
建议增量: 2
MaskHeight (输入控制) integer → (integer)
Height of the filter mask.
默认值: 15
建议值: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 31, 49, 51, 61, 71, 81, 91, 101
值范围:
3
≤
MaskHeight
≤
4095
最小增量: 2
建议增量: 2
Rank (输入控制) integer → (integer)
Rank of the output gray value.
默认值: 5
建议值: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 31, 49, 51, 61, 71, 81, 91, 101
最小增量: 1
建议增量: 2
限制:
1 <= Rank && Rank <= MaskWidth * MaskHeight
对于每个像素:O(1)。
如果参数值正确,算子 rank_rect 返回值 2 ( H_MSG_TRUE )。 The behavior in case of empty input (no
input images available) is set via
set_system('no_object_result',<Result>)。如有必要,则抛出异常。
threshold,
dyn_threshold,
regiongrowing
rank_image,
median_rect,
median_image
gray_erosion_rect,
gray_dilation_rect,
gray_erosion_shape,
gray_dilation_shape,
gray_erosion,
gray_dilation
S. Perreault, P. Hébert; “Median Filtering in Constant Time”;
IEEE Transactions on Image Processing, vol. 16, no. 9,
pp. 2389-2394, 2007.
D. Cline, K.B. White, P.K. Egbert; “Fast 8-Bit Median Filtering
Based On Separability”; International Conference on Image
Processing, vol. V, pp. 281-284, 2007.
基础