rank_nrank_nRankNRankNrank_n (Operator)


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


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


The operator rank_nrank_nRankNRankNRankNrank_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 RankIndexRankIndexRankIndexRankIndexrankIndexrank_index is selected and placed in the output image at the same position. The output image has one channel.

In the special cases RankIndexRankIndexRankIndexRankIndexrankIndexrank_index = 1 and RankIndexRankIndexRankIndexRankIndexrankIndexrank_index = '(Number of channels)'"(Number of channels)""(Number of channels)""(Number of channels)""(Number of channels)""(Number of channels)" the minimum and maximum are returned. RankIndexRankIndexRankIndexRankIndexrankIndexrank_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""(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_nRankNRankNRankNrank_n should not be confused with the operator rank_imagerank_imageRankImageRankImageRankImagerank_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.


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


ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / int2 / uint2 / int4 / int8 / real)

Multichannel gray image.

RankImageRankImageRankImageRankImagerankImagerank_image (output_object)  singlechannelimage(-array) objectHImageHObjectHImageHobject * (byte / int2 / uint2 / int4 / int8 / real)

Result of the rank function.

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

Rank of the gray value images to return.

Default value: 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

compose2compose2Compose2Compose2Compose2compose2, compose3compose3Compose3Compose3Compose3compose3, compose4compose4Compose4Compose4Compose4compose4, compose5compose5Compose5Compose5Compose5compose5, add_channelsadd_channelsAddChannelsAddChannelsAddChannelsadd_channels



See also

count_channelscount_channelsCountChannelsCountChannelsCountChannelscount_channels, rank_imagerank_imageRankImageRankImageRankImagerank_image