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)fit_surface_second_order(RegionIntersection, Image, Algorithm, Iterations, ClippingFactor, Alpha, Beta, Gamma, Delta, Epsilon, Zeta)FitSurfaceSecondOrder(RegionIntersection, Image, Algorithm, Iterations, ClippingFactor, Alpha, Beta, Gamma, Delta, Epsilon, Zeta)FitSurfaceSecondOrder(RegionIntersection, Image, Algorithm, Iterations, ClippingFactor, Alpha, Beta, Gamma, Delta, Epsilon, Zeta)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