gen_image_surface_second_ordergen_image_surface_second_orderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrdergen_image_surface_second_order (Operator)

Name

gen_image_surface_second_ordergen_image_surface_second_orderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrdergen_image_surface_second_order — Create a curved gray surface with second order polynomial.

Signature

gen_image_surface_second_order( : ImageSurface : Type, Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Row, Column, Width, Height : )

Herror gen_image_surface_second_order(Hobject* ImageSurface, const char* Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, const Hlong Width, const Hlong Height)

Herror T_gen_image_surface_second_order(Hobject* ImageSurface, const Htuple Type, const Htuple Alpha, const Htuple Beta, const Htuple Gamma, const Htuple Delta, const Htuple Epsilon, const Htuple Zeta, const Htuple Row, const Htuple Column, const Htuple Width, const Htuple Height)

void GenImageSurfaceSecondOrder(HObject* ImageSurface, const HTuple& Type, const HTuple& Alpha, const HTuple& Beta, const HTuple& Gamma, const HTuple& Delta, const HTuple& Epsilon, const HTuple& Zeta, const HTuple& Row, const HTuple& Column, const HTuple& Width, const HTuple& Height)

void HImage::GenImageSurfaceSecondOrder(const HString& Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, Hlong Width, Hlong Height)

void HImage::GenImageSurfaceSecondOrder(const char* Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, Hlong Width, Hlong Height)

void HImage::GenImageSurfaceSecondOrder(const wchar_t* Type, double Alpha, double Beta, double Gamma, double Delta, double Epsilon, double Zeta, double Row, double Column, Hlong Width, Hlong Height)   ( Windows only)

static void HOperatorSet.GenImageSurfaceSecondOrder(out HObject imageSurface, HTuple type, HTuple alpha, HTuple beta, HTuple gamma, HTuple delta, HTuple epsilon, HTuple zeta, HTuple row, HTuple column, HTuple width, HTuple height)

void HImage.GenImageSurfaceSecondOrder(string type, double alpha, double beta, double gamma, double delta, double epsilon, double zeta, double row, double column, int width, int height)

def gen_image_surface_second_order(type: str, alpha: float, beta: float, gamma: float, delta: float, epsilon: float, zeta: float, row: float, column: float, width: int, height: int) -> HObject

Description

The operator gen_image_surface_second_ordergen_image_surface_second_orderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrdergen_image_surface_second_order creates a curved gray value surface according to the following equation: The size of the image is determined by WidthWidthWidthwidthwidth and HeightHeightHeightheightheight. The parameters RowRowRowrowrow and ColumnColumnColumncolumncolumn define the reference point of the created gray surface. If fit_surface_second_orderfit_surface_second_orderFitSurfaceSecondOrderFitSurfaceSecondOrderfit_surface_second_order was used to determine the parameters of the gray surface, this reference point should correspond to the center of gravity that is used in the surface equation (see fit_surface_second_orderfit_surface_second_orderFitSurfaceSecondOrderFitSurfaceSecondOrderfit_surface_second_order). Its coordinates can be computed as follows:
intersection(ROI, Image, RegionIntersection)intersection(ROI, Image, RegionIntersection)Intersection(ROI, Image, RegionIntersection)Intersection(ROI, Image, RegionIntersection)intersection(ROI, Image, RegionIntersection)
fit_surface_second_order(RegionIntersection, Image, Algorithm, Iterations, ClippingFactor, Alpha, Beta, Gamma, Delta, Epsilon, Zeta)
area_center(RegionIntersection, Area, Row, Column)area_center(RegionIntersection, Area, Row, Column)AreaCenter(RegionIntersection, Area, Row, Column)AreaCenter(RegionIntersection, Area, Row, Column)area_center(RegionIntersection, Area, Row, Column)
gen_image_surface_second_order(ImageSurface, Type, Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Row, Column, Width, Height)gen_image_surface_second_order(ImageSurface, Type, Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Row, Column, Width, Height)GenImageSurfaceSecondOrder(ImageSurface, Type, Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Row, Column, Width, Height)GenImageSurfaceSecondOrder(ImageSurface, Type, Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Row, Column, Width, Height)gen_image_surface_second_order(ImageSurface, Type, Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Row, Column, Width, Height)

The gray values are of the type TypeTypeTypetypetype (see gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const for a detailed description of the pixel types). Gray values outside the valid area are clipped.

Execution Information

Parameters

ImageSurfaceImageSurfaceImageSurfaceimageSurfaceimage_surface (output_object)  image → objectHImageHObjectHObjectHobject * (byte / uint2 / real)

Created image with new image matrix.

TypeTypeTypetypetype (input_control)  string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Pixel type.

Default: 'byte' "byte" "byte" "byte" "byte"

List of values: 'byte'"byte""byte""byte""byte", 'real'"real""real""real""real", 'uint2'"uint2""uint2""uint2""uint2"

AlphaAlphaAlphaalphaalpha (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

Second order coefficient in vertical direction.

Default: 1.0

Suggested values: -2.0, -1.0, -0.5, -0.0, 0.5, 1.0, 2.0

Minimum increment: 0.000001

Recommended increment: -0.005

BetaBetaBetabetabeta (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

Second order coefficient in horizontal direction.

Default: 1.0

Suggested values: -2.0, -1.0, -0.5, -0.0, 0.5, 1.0, 2.0

Minimum increment: 0.000001

Recommended increment: -0.005

GammaGammaGammagammagamma (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

Mixed second order coefficient.

Default: 1.0

Suggested values: -2.0, -1.0, -0.5, -0.0, 0.5, 1.0, 2.0

Minimum increment: 0.000001

Recommended increment: -0.005

DeltaDeltaDeltadeltadelta (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

First order coefficient in vertical direction.

Default: 1.0

Suggested values: -2.0, -1.0, -0.5, -0.0, 0.5, 1.0, 2.0

Minimum increment: 0.000001

Recommended increment: -0.005

EpsilonEpsilonEpsilonepsilonepsilon (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

First order coefficient in horizontal direction.

Default: 1.0

Suggested values: -2.0, -1.0, -0.5, -0.0, 0.5, 1.0, 2.0

Minimum increment: 0.000001

Recommended increment: -0.005

ZetaZetaZetazetazeta (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

Zero order coefficient.

Default: 1.0

Suggested values: -2.0, -1.0, -0.5, -0.0, 0.5, 1.0, 2.0

Minimum increment: 0.000001

Recommended increment: -0.005

RowRowRowrowrow (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

Row coordinate of the reference point of the surface.

Default: 256.0

Suggested values: 0.0, 128.0, 256.0, 512.0

Minimum increment: 0.000001

Recommended increment: -0.005

ColumnColumnColumncolumncolumn (input_control)  number → HTuplefloatHTupleHtuple (real) (double) (double) (double)

Column coordinate of the reference point of the surface.

Default: 256.0

Suggested values: 0.0, 128.0, 256.0, 512.0

Minimum increment: 0.000001

Recommended increment: -0.005

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

Width of image.

Default: 512

Suggested values: 128, 256, 512, 1024

Value range: 1 ≤ Width Width Width width width (lin)

Minimum increment: 1

Recommended increment: 10

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

Height of image.

Default: 512

Suggested values: 128, 256, 512, 1024

Value range: 1 ≤ Height Height Height height height (lin)

Minimum increment: 1

Recommended increment: 10

Example (HDevelop)

* Adjust an inhomogeneous illumination
* using gen_image_surface_second_order
read_image (Image, 'cap_illumination/cap_illumination_01')
get_image_size (Image, Width, Height)
gen_circle (Circle, 495, 630, 350.5)
difference (Image, Circle, RegionDifference)
fit_surface_second_order (RegionDifference, Image, 'regression', 5, 2, \
                          Alpha, Beta, Gamma, Delta, Epsilon, Zeta)
area_center (RegionDifference, Area, Row, Column)
gen_image_surface_second_order (ImageSurface, 'byte', Alpha, Beta, \
                                Gamma, Delta, Epsilon, Zeta, Row, Column, \
                                Width, Height)
sub_image (Image, ImageSurface, ImageSub, 1, 128)

Result

If the parameter values are correct gen_image_surface_second_ordergen_image_surface_second_orderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrdergen_image_surface_second_order returns the value 2 ( H_MSG_TRUE) . Otherwise an exception is raised.

Possible Predecessors

fit_surface_second_orderfit_surface_second_orderFitSurfaceSecondOrderFitSurfaceSecondOrderfit_surface_second_order

Possible Successors

sub_imagesub_imageSubImageSubImagesub_image

See also

gen_image_gray_rampgen_image_gray_rampGenImageGrayRampGenImageGrayRampgen_image_gray_ramp, gen_image_surface_first_ordergen_image_surface_first_orderGenImageSurfaceFirstOrderGenImageSurfaceFirstOrdergen_image_surface_first_order, gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const

Module

Foundation