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_orderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrdergen_image_surface_second_order creates a curved gray value surface according to the following equation: The size of the image is determined by WidthWidthWidthWidthwidthwidth and HeightHeightHeightHeightheightheight. The parameters RowRowRowRowrowrow and ColumnColumnColumnColumncolumncolumn define the reference point of the created gray surface. If fit_surface_second_orderfit_surface_second_orderFitSurfaceSecondOrderFitSurfaceSecondOrderFitSurfaceSecondOrderfit_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_orderFitSurfaceSecondOrderFitSurfaceSecondOrderFitSurfaceSecondOrderfit_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)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)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)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)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 TypeTypeTypeTypetypetype (see gen_image_constgen_image_constGenImageConstGenImageConstGenImageConstgen_image_const for a detailed description of the pixel types). Gray values outside the valid area are clipped.

Execution Information

Parameters

ImageSurfaceImageSurfaceImageSurfaceImageSurfaceimageSurfaceimage_surface (output_object)  image objectHImageHObjectHImageHobject * (byte / uint2 / real)

Created image with new image matrix.

TypeTypeTypeTypetypetype (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Pixel type.

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

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

AlphaAlphaAlphaAlphaalphaalpha (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Second order coefficient in vertical direction.

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

BetaBetaBetaBetabetabeta (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Second order coefficient in horizontal direction.

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

GammaGammaGammaGammagammagamma (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Mixed second order coefficient.

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

DeltaDeltaDeltaDeltadeltadelta (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

First order coefficient in vertical direction.

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

EpsilonEpsilonEpsilonEpsilonepsilonepsilon (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

First order coefficient in horizontal direction.

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

ZetaZetaZetaZetazetazeta (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Zero order coefficient.

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

RowRowRowRowrowrow (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Row coordinate of the reference point of the surface.

Default value: 256.0

Suggested values: 0.0, 128.0, 256.0, 512.0

Minimum increment: 0.000001

Recommended increment: -0.005

ColumnColumnColumnColumncolumncolumn (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Column coordinate of the reference point of the surface.

Default value: 256.0

Suggested values: 0.0, 128.0, 256.0, 512.0

Minimum increment: 0.000001

Recommended increment: -0.005

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

Width of image.

Default value: 512

Suggested values: 128, 256, 512, 1024

Typical range of values: 1 ≤ Width Width Width Width width width (lin)

Minimum increment: 1

Recommended increment: 10

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

Height of image.

Default value: 512

Suggested values: 128, 256, 512, 1024

Typical range of values: 1 ≤ Height 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_orderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrderGenImageSurfaceSecondOrdergen_image_surface_second_order returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Predecessors

fit_surface_second_orderfit_surface_second_orderFitSurfaceSecondOrderFitSurfaceSecondOrderFitSurfaceSecondOrderfit_surface_second_order

Possible Successors

sub_imagesub_imageSubImageSubImageSubImagesub_image

See also

gen_image_gray_rampgen_image_gray_rampGenImageGrayRampGenImageGrayRampGenImageGrayRampgen_image_gray_ramp, gen_image_surface_first_ordergen_image_surface_first_orderGenImageSurfaceFirstOrderGenImageSurfaceFirstOrderGenImageSurfaceFirstOrdergen_image_surface_first_order, gen_image_constgen_image_constGenImageConstGenImageConstGenImageConstgen_image_const

Module

Foundation