Operator Reference

emphasizeemphasizeEmphasizeEmphasizeemphasize (Operator)

emphasizeemphasizeEmphasizeEmphasizeemphasize — Enhance contrast of the image.

Signature

Herror emphasize(const Hobject Image, Hobject* ImageEmphasize, const Hlong MaskWidth, const Hlong MaskHeight, double Factor)

Herror T_emphasize(const Hobject Image, Hobject* ImageEmphasize, const Htuple MaskWidth, const Htuple MaskHeight, const Htuple Factor)

void Emphasize(const HObject& Image, HObject* ImageEmphasize, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Factor)

HImage HImage::Emphasize(Hlong MaskWidth, Hlong MaskHeight, double Factor) const

static void HOperatorSet.Emphasize(HObject image, out HObject imageEmphasize, HTuple maskWidth, HTuple maskHeight, HTuple factor)

HImage HImage.Emphasize(int maskWidth, int maskHeight, double factor)

def emphasize(image: HObject, mask_width: int, mask_height: int, factor: float) -> HObject

Description

The operator emphasizeemphasizeEmphasizeEmphasizeemphasize emphasizes high frequency areas of the image (edges and corners). The resulting images appears sharper.

First the procedure carries out a filtering with the low pass (mean_imagemean_imageMeanImageMeanImagemean_image). The resulting gray values (res) are calculated from the obtained gray values (mean) and the original gray values (orig) as follows: res := round((orig - mean) * Factor) + orig FactorFactorFactorfactorfactor serves as measurement of the increase in contrast. The division frequency is determined via the size of the filter matrix: The larger the matrix, the lower the division frequency.

As an edge treatment the gray values are mirrored at the edges of the image. Overflow and/or underflow of gray values is clipped.

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 channel level.
  • Automatically parallelized on domain level.

Parameters

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

Image to be enhanced.

ImageEmphasizeImageEmphasizeImageEmphasizeimageEmphasizeimage_emphasize (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / int2 / uint2)

contrast enhanced image.

MaskWidthMaskWidthMaskWidthmaskWidthmask_width (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Width of low pass mask.

Default: 7

Suggested values: 3, 5, 7, 9, 11, 15, 21, 25, 31, 39

Value range: 3 ≤ MaskWidth MaskWidth MaskWidth maskWidth mask_width

Minimum increment: 2

Recommended increment: 2

MaskHeightMaskHeightMaskHeightmaskHeightmask_height (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of the low pass mask.

Default: 7

Suggested values: 3, 5, 7, 9, 11, 15, 21, 25, 31, 39

Value range: 3 ≤ MaskHeight MaskHeight MaskHeight maskHeight mask_height

Minimum increment: 2

Recommended increment: 2

FactorFactorFactorfactorfactor (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Intensity of contrast emphasis.

Default: 1.0

Suggested values: 0.3, 0.5, 0.7, 1.0, 1.4, 1.8, 2.0

Value range: 0.0 ≤ Factor Factor Factor factor factor (sqrt)

Recommended increment: 0.2

Example (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Example (C)

read_image(&Image,"mreut");
disp_image(Image,WindowHandle);
draw_region(&Region,WindowHandle);
reduce_domain(Image,Region,&Mask);
emphasize(Mask,&Sharp,7,7,2.0);
disp_image(Sharp,WindowHandle);

Example (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Example (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Result

If the parameter values are correct the operator emphasizeemphasizeEmphasizeEmphasizeemphasize returns the value 2 ( H_MSG_TRUE) The behavior in case of empty input (no input images available) is set via the operator set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>). If necessary an exception is raised.

Possible Successors

disp_imagedisp_imageDispImageDispImagedisp_image

Alternatives

mean_imagemean_imageMeanImageMeanImagemean_image, sub_imagesub_imageSubImageSubImagesub_image, laplacelaplaceLaplaceLaplacelaplace, add_imageadd_imageAddImageAddImageadd_image

See also

mean_imagemean_imageMeanImageMeanImagemean_image, highpass_imagehighpass_imageHighpassImageHighpassImagehighpass_image

Module

Foundation