Operator Reference

rank_nrank_nRankNRankNrank_n (Operator)

rank_nrank_nRankNRankNrank_n — Return gray values with given rank from multiple channels.

Signature

rank_n(Image : RankImage : RankIndex : )

Herror rank_n(const Hobject Image, Hobject* RankImage, const Hlong RankIndex)

Herror T_rank_n(const Hobject Image, Hobject* RankImage, const Htuple RankIndex)

void RankN(const HObject& Image, HObject* RankImage, const HTuple& RankIndex)

HImage HImage::RankN(Hlong RankIndex) const

static void HOperatorSet.RankN(HObject image, out HObject rankImage, HTuple rankIndex)

HImage HImage.RankN(int rankIndex)

def rank_n(image: HObject, rank_index: int) -> HObject

Description

The operator rank_nrank_nRankNRankNrank_n returns pixel-by-pixel the result of the rank-function over all channels.

For every pixel in the input image the following is being done: The gray values of all channels at this position are sorted in ascending order. Then the pixel with index RankIndexRankIndexRankIndexrankIndexrank_index is selected and placed in the output image at the same position. The output image has one channel.

In the special cases RankIndexRankIndexRankIndexrankIndexrank_index = 1 and RankIndexRankIndexRankIndexrankIndexrank_index = '(Number of channels)'"(Number of channels)""(Number of channels)""(Number of channels)""(Number of channels)" the minimum and maximum are returned. RankIndexRankIndexRankIndexrankIndexrank_index = '(Number of channels + 1) / 2'"(Number of channels + 1) / 2""(Number of channels + 1) / 2""(Number of channels + 1) / 2""(Number of channels + 1) / 2" returns the median (here, / denotes integer division). Hence, for a five-channel image, 3 returns the median.

The operator rank_nrank_nRankNRankNrank_n should not be confused with the operator rank_imagerank_imageRankImageRankImagerank_image which computes the rank within a certain mask.

For an explanation of the concept of smoothing filters see the introduction of chapter Filters / Smoothing.

Attention

Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on tuple level.
  • Automatically parallelized on domain level.

Parameters

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte / int2 / uint2 / int4 / int8 / real)

Multichannel gray image.

RankImageRankImageRankImagerankImagerank_image (output_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject * (byte / int2 / uint2 / int4 / int8 / real)

Result of the rank function.

RankIndexRankIndexRankIndexrankIndexrank_index (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Rank of the gray value images to return.

Default: 2

Suggested values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20

Example (HDevelop)

compose5 (Image1, Image2, Image3, Image4, Image5, MultiChannelImage)
rank_n (MultiChannelImage, ImageMin, 1)
rank_n (MultiChannelImage, ImageMax, 5)
rank_n (MultiChannelImage, ImageMedian, 3)

Possible Predecessors

compose2compose2Compose2Compose2compose2, compose3compose3Compose3Compose3compose3, compose4compose4Compose4Compose4compose4, compose5compose5Compose5Compose5compose5, add_channelsadd_channelsAddChannelsAddChannelsadd_channels

Alternatives

mean_nmean_nMeanNMeanNmean_n

See also

count_channelscount_channelsCountChannelsCountChannelscount_channels, rank_imagerank_imageRankImageRankImagerank_image

Module

Foundation