Leaper WaferScan Toolkit
中文 / English 2.x
Public 成员函数 | 属性
ILRegion接口 参考

该接口类提供了创建、修改、操作和绘制一个 LPV区域对象 (LRectRegion , LRotRectRegion , LCircleRegion , etc.). 更多...

类 ILRegion 继承关系图:
ILObject ILAnnulusRegion ILAnnulusSectorRegion ILCircleRegion ILCompoundRegion ILEllipseRegion ILMaskRegion ILPolyRegion ILRectRegion ILRotRectRegion

Public 成员函数

ILCompoundRegionAdd (ILRegion *other)
 
void Drag (LPVRoiHandle roiHandle, int x, int y, double zoomX, double zoomY, double panX, double panY)
 
void Draw (HDC hdc, BOOL drawHandles, double zoomX, double zoomY, double panX, double panY)
 
void EnableHandle (LPVRoiHandle roiHandle, BOOL enabled)
 
LPVRoiHandle HitTest (int x, int y, double zoomX, double zoomY, double panX, double panY)
 
ILCompoundRegionIntersect (ILRegion *other)
 
ILCompoundRegionInvert ()
 
void MapFromImage (double imagePointX, double imagePointY, double *regionPointX, double *regionPointY)
 
ILObjectMapObjectFromImage (ILObject *imageObject)
 
ILObjectMapObjectToImage (ILObject *regionObject)
 
void MapToImage (double regionPointX, double regionPointY, double *imagePointX, double *imagePointY)
 
void ReduceImage (ILImage *image, ILImage **newImage, ILImage **newMask)
 
ILRegionRotate (double da)
 
ILRegionRotateAndTranslate (double x, double y, double newX, double newY, double da)
 
ILRegionScale (double factorX, double factorY)
 
ILCompoundRegionSubtract (ILRegion *other)
 
ILImageToMask (int w, int h)
 
ILRegionTranslate (double offsetX, double offsetY)
 
ILCompoundRegionUnion (ILRegion *other)
 
ILCompoundRegionXOR (ILRegion *other)
 
- Public 成员函数 继承自 ILObject
ILObjectCopy ()
 
LPVErrorCode Load (LString filename)
 
void Reset ()
 
LPVErrorCode Save (LString filename)
 
BOOL Valid ()
 

属性

LPVInterpolationMethod InterpolationMethod [get, set]
 生成子图像时所使用的插值算法
 
double ReduceAngle [get, set]
 生成子图像时所使用的生成角度。
默认设置为 0,即无旋转。设置非 0 的角度,在生成子图像时,将按顺时针旋转子图像。该功能适用于转正矩形区域所在的图像。 更多...
 
double ReduceScale [get, set]
 生成子图像时所使用的缩放比例。
默认设置为 1,即无缩放。设置合适的数值,将缩放生成子图像到给定的比例。 更多...
 

详细描述

该接口类提供了创建、修改、操作和绘制一个 LPV区域对象 (LRectRegion , LRotRectRegion , LCircleRegion , etc.).

区域指的是图像中感兴趣的范围,通常用于限制识别和检测算法区域的位置和大小。
使用这个接口,需要创建一个区域对象。

该接口提供了多种设置和修改区域的方式,以下列出几种较为常用的方式。

  1. 对于简单的形状类型区域,手动修改。
  2. 通过鼠标交互拖拽修改区域。
  3. 通过多个区域进行逻辑运算,生成新的区域。

示例代码

成员函数说明

◆ Add()

ILCompoundRegion* Add ( ILRegion other)

将当前区域和输入的区域相加,生成一个新的区域,P' = P + other. 与 Union() 相同,新的区域包含当前区域和输入区域中所包含的所有部分。

参数
[in]other输入用于相加的区域
返回值
newRegion输出一个新的复合区域对象
参见
Subtract(), Union(), Intersect(), XOR().

◆ Drag()

void Drag ( LPVRoiHandle  roiHandle,
int  x,
int  y,
double  zoomX,
double  zoomY,
double  panX,
double  panY 
)

移动区域的操作句柄到新的位置,以更新区域的位置、尺寸、旋转或顶点等。

参数
[in]roiHandle输入操作句柄,通常通过 HitTest() 获得。
[in]x鼠标的 x 坐标
[in]y鼠标的 y 坐标
参见
Draw(), HitTest().
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ Draw()

void Draw ( HDC  hdc,
BOOL  drawHandles,
double  zoomX,
double  zoomY,
double  panX,
double  panY 
)

绘制该区域到给定的设备。

参数
[in]drawHandles是否绘制操作句柄
备注
若绘制该区域时设置了缩放和平移量,则在调用 HitTest()Drag() 需设置相同的数值。
参见
HitTest(), Drag().
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ EnableHandle()

void EnableHandle ( LPVRoiHandle  roiHandle,
BOOL  enabled 
)

启用或禁用指定的操作句柄。已禁用的句柄不会被绘制,也无法拖拽。不支持的输入句柄将被忽略。
默认所有操作句柄均为启用。

参数
[in]roiHandle输入操作句柄
[in]enabled是否启用

◆ HitTest()

LPVRoiHandle HitTest ( int  x,
int  y,
double  zoomX,
double  zoomY,
double  panX,
double  panY 
)

检测鼠标位置是否放置在该区域的操作句柄上

参数
[in]x鼠标的 x 坐标
[in]y鼠标的 y 坐标
返回值
roiHandle返回操作句柄
参见
Draw(), Drag().
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ Intersect()

ILCompoundRegion* Intersect ( ILRegion other)

将当前区域与输入的区域进行并操作,生成一个新的区域, P' = P ∩ other. 新的区域仅包含同时包含在当前区域和输入区域中的部分。

参数
[in]other输入用于并操作的区域对象
返回值
newRegion输出一个新的复合区域对象
参见
Add(), Subtract(), Union(), XOR().

◆ Invert()

ILCompoundRegion* Invert ( )

取反当前区域,生成一个新的区域

返回值
newRegion输出一个新的复合区域对象

◆ MapFromImage()

void MapFromImage ( double  imagePointX,
double  imagePointY,
double *  regionPointX,
double *  regionPointY 
)

将坐标从整个图像的坐标系转换到当前区域的局部坐标系

参数
[in]imagePointX像素在整个图像的坐标系上的 x 坐标
[in]imagePointY像素在整个图像的坐标系上的 y 坐标
[out]regionPointX输出像素在当前区域的局部坐标系上的 x 坐标
[out]regionPointY输出像素在当前区域的局部坐标系上的 y 坐标
参见
MapToImage(), MapObjectFromImage().

◆ MapObjectFromImage()

ILObject* MapObjectFromImage ( ILObject imageObject)

将指定类中的坐标从整个图像的坐标系转换到当前区域的局部坐标系

参数
[in]imageObject带有位置信息的图像坐标系下的 LPV 对象。 通常为一个几何形状或检测结果,并实现了 ISortable 或 ISortables 接口。
返回值
regionObject返回坐标变换后的当前区域的局部坐标系下的 LPV 对象,其类型与输入相同。
参见
MapObjectToImage(), MapFromImage().

◆ MapObjectToImage()

ILObject* MapObjectToImage ( ILObject regionObject)

将指定类中的坐标从当前区域的局部坐标系转换到整个图像的坐标系

参数
[in]regionObject带有位置信息的当前区域的局部坐标系下的 LPV 对象。 通常为一个几何形状或检测结果,并实现了 ISortable 或 ISortables 接口。
返回值
imageObject返回坐标变换后的图像坐标系下的 LPV 对象,其类型与输入相同。
参见
MapObjectFromImage(), MapToImage().

◆ MapToImage()

void MapToImage ( double  regionPointX,
double  regionPointY,
double *  imagePointX,
double *  imagePointY 
)

将坐标从当前区域的局部坐标系转换到整个图像的坐标系

参数
[in]regionPointX像素在当前区域的局部坐标系上的 x 坐标
[in]regionPointY像素在当前区域的局部坐标系上的 y 坐标
[out]imagePointX输出像素在整个图像的坐标系上的 x 坐标
[out]imagePointY输出像素在整个图像的坐标系上的 y 坐标
参见
MapFromImage(), MapObjectToImage().

◆ ReduceImage()

void ReduceImage ( ILImage image,
ILImage **  newImage,
ILImage **  newMask 
)

从输入图像中获取当前区域的子图像。去除不在区域中的像素,子图像的尺寸为当前区域的包围矩形尺寸。 若当前区域不是一个矩形,将生成一个蒙版图像,其中白像素表示在该位置包含在当前区域中。

参数
[in]image输入图像
[out]newImage输出结果图像
[out]newMask 输出结果蒙版
参见
ToMask(), InterpolationMethod.

◆ Rotate()

ILRegion* Rotate ( double  da)

以区域中心为旋转中心顺时针旋转当前区域,生成一个新的区域。
注意:旋转后的 LRectRegionLMaskRegion 对象可能比原始区域更大,因为旋转后的顶点的包围矩形组成了结果区域范围。

参数
[in]da旋转角度
返回值
newRegion输出一个新的区域对象,其类型与输入区域相同
参见
Translate(), RotateAndTranslate(), Scale().

◆ RotateAndTranslate()

ILRegion* RotateAndTranslate ( double  x,
double  y,
double  newX,
double  newY,
double  da 
)

基于锚点的位置和角度变化,生成一个旋转和平移后的区域对象。 区域对象和锚点的相对位置,在变换前后保持不变。

参数
[in]x锚点的当前 x 坐标
[in]y锚点的当前 y 坐标
[in]newX锚点旋转和平移后的 x 坐标
[in]newY锚点旋转和平移后的 y 坐标
[in]da锚点的旋转角度
返回值
newRegion输出一个新的区域对象,其类型与输入区域相同
参见
Translate(), Rotate().

◆ Scale()

ILRegion* Scale ( double  factorX,
double  factorY 
)

缩放当前区域,生成一个新的区域对象,保持区域中心点不变。
注意:对于 LCircleRegionLAnnulusRegion 对象,不支持非等比缩放。

参数
[in]factorXx 方向的缩放比例
[in]factorYy 方向的缩放比例
返回值
newRegion输出一个新的区域对象,其类型与输入区域相同
参见
Translate(), Rotate().

◆ Subtract()

ILCompoundRegion* Subtract ( ILRegion other)

从当前区域中减去输入的区域,生成一个新的区域,P' = P - other.

参数
[in]other输入用于减去的区域
返回值
newRegion输出一个新的复合区域对象
参见
Add(), Union(), Intersect(), XOR().

◆ ToMask()

ILImage* ToMask ( int  w,
int  h 
)

为当前区域生成一个蒙版图像,该图像为 w * h 尺寸,图像中的白i像素表示该位置包含在当前区域中。

参数
[in]w指定输出蒙版图像的宽度
[in]h指定输出蒙版图像的高度
返回值
newRegion输出生成的蒙版图像
参见
ReduceImage().

◆ Translate()

ILRegion* Translate ( double  offsetX,
double  offsetY 
)

平移当前区域,生成一个新的区域对象,P' = P + offset.

参数
[in]offsetXx 方向的平移量
[in]offsetYy 方向的平移量
返回值
newRegion输出一个新的区域对象,其类型与输入区域相同
参见
Scale(), Rotate(), RotateAndTranslate().

◆ Union()

ILCompoundRegion* Union ( ILRegion other)

将当前区域与输入的区域进行与操作,生成一个新的区域,P' = P U other. 与 Add() 相同,新的区域包含当前区域和输入区域中所包含的所有部分。

参数
[in]other输入用于与操作的区域
返回值
newRegion输出一个新的复合区域对象
参见
Add(), Subtract(), Intersect(), XOR().

◆ XOR()

ILCompoundRegion* XOR ( ILRegion other)

将当前区域与输入的区域进行异或操作,生成一个新的区域, P' = P XOR other. 新的区域仅包含属于当前区域但不属于输入区域或属于输入区域但不属于当前区域的部分。

参数
[in]other输入用于异或操作的区域对象
返回值
newRegion输出一个新的复合区域对象
参见
Add(), Subtract(), Union(), Intersect().

属性说明

◆ ReduceAngle

double ReduceAngle
getset

生成子图像时所使用的生成角度。
默认设置为 0,即无旋转。设置非 0 的角度,在生成子图像时,将按顺时针旋转子图像。该功能适用于转正矩形区域所在的图像。

参见
ReduceScale, ReduceImage().

◆ ReduceScale

double ReduceScale
getset

生成子图像时所使用的缩放比例。
默认设置为 1,即无缩放。设置合适的数值,将缩放生成子图像到给定的比例。

参见
ReduceAngle, ReduceImage().