该接口类提供了创建、修改、操作和绘制一个 LPV区域对象 (LRectRegion , LRotRectRegion , LCircleRegion , etc.). 更多...
Public 成员函数 | |
| ILCompoundRegion * | Add (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) |
| ILCompoundRegion * | Intersect (ILRegion *other) |
| ILCompoundRegion * | Invert () |
| void | MapFromImage (double imagePointX, double imagePointY, double *regionPointX, double *regionPointY) |
| ILObject * | MapObjectFromImage (ILObject *imageObject) |
| ILObject * | MapObjectToImage (ILObject *regionObject) |
| void | MapToImage (double regionPointX, double regionPointY, double *imagePointX, double *imagePointY) |
| void | ReduceImage (ILImage *image, ILImage **newImage, ILImage **newMask) |
| ILRegion * | Rotate (double da) |
| ILRegion * | RotateAndTranslate (double x, double y, double newX, double newY, double da) |
| ILRegion * | Scale (double factorX, double factorY) |
| ILCompoundRegion * | Subtract (ILRegion *other) |
| ILImage * | ToMask (int w, int h) |
| ILRegion * | Translate (double offsetX, double offsetY) |
| ILCompoundRegion * | Union (ILRegion *other) |
| ILCompoundRegion * | XOR (ILRegion *other) |
Public 成员函数 继承自 ILObject | |
| ILObject * | Copy () |
| 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.).
区域指的是图像中感兴趣的范围,通常用于限制识别和检测算法区域的位置和大小。
使用这个接口,需要创建一个区域对象。
该接口提供了多种设置和修改区域的方式,以下列出几种较为常用的方式。
| ILCompoundRegion* Add | ( | ILRegion * | other | ) |
将当前区域和输入的区域相加,生成一个新的区域,P' = P + other. 与 Union() 相同,新的区域包含当前区域和输入区域中所包含的所有部分。
| [in] | other | 输入用于相加的区域 |
| newRegion | 输出一个新的复合区域对象 |
| 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 坐标 |
| void Draw | ( | HDC | hdc, |
| BOOL | drawHandles, | ||
| double | zoomX, | ||
| double | zoomY, | ||
| double | panX, | ||
| double | panY | ||
| ) |
绘制该区域到给定的设备。
| [in] | drawHandles | 是否绘制操作句柄 |
| void EnableHandle | ( | LPVRoiHandle | roiHandle, |
| BOOL | enabled | ||
| ) |
启用或禁用指定的操作句柄。已禁用的句柄不会被绘制,也无法拖拽。不支持的输入句柄将被忽略。
默认所有操作句柄均为启用。
| [in] | roiHandle | 输入操作句柄 |
| [in] | enabled | 是否启用 |
| LPVRoiHandle HitTest | ( | int | x, |
| int | y, | ||
| double | zoomX, | ||
| double | zoomY, | ||
| double | panX, | ||
| double | panY | ||
| ) |
检测鼠标位置是否放置在该区域的操作句柄上
| [in] | x | 鼠标的 x 坐标 |
| [in] | y | 鼠标的 y 坐标 |
| roiHandle | 返回操作句柄 |
| ILCompoundRegion* Intersect | ( | ILRegion * | other | ) |
将当前区域与输入的区域进行并操作,生成一个新的区域, P' = P ∩ other. 新的区域仅包含同时包含在当前区域和输入区域中的部分。
| [in] | other | 输入用于并操作的区域对象 |
| newRegion | 输出一个新的复合区域对象 |
| ILCompoundRegion* Invert | ( | ) |
取反当前区域,生成一个新的区域
| newRegion | 输出一个新的复合区域对象 |
| void MapFromImage | ( | double | imagePointX, |
| double | imagePointY, | ||
| double * | regionPointX, | ||
| double * | regionPointY | ||
| ) |
将坐标从整个图像的坐标系转换到当前区域的局部坐标系
| [in] | imagePointX | 像素在整个图像的坐标系上的 x 坐标 |
| [in] | imagePointY | 像素在整个图像的坐标系上的 y 坐标 |
| [out] | regionPointX | 输出像素在当前区域的局部坐标系上的 x 坐标 |
| [out] | regionPointY | 输出像素在当前区域的局部坐标系上的 y 坐标 |
将指定类中的坐标从整个图像的坐标系转换到当前区域的局部坐标系
| [in] | imageObject | 带有位置信息的图像坐标系下的 LPV 对象。 通常为一个几何形状或检测结果,并实现了 ISortable 或 ISortables 接口。 |
| regionObject | 返回坐标变换后的当前区域的局部坐标系下的 LPV 对象,其类型与输入相同。 |
将指定类中的坐标从当前区域的局部坐标系转换到整个图像的坐标系
| [in] | regionObject | 带有位置信息的当前区域的局部坐标系下的 LPV 对象。 通常为一个几何形状或检测结果,并实现了 ISortable 或 ISortables 接口。 |
| imageObject | 返回坐标变换后的图像坐标系下的 LPV 对象,其类型与输入相同。 |
| void MapToImage | ( | double | regionPointX, |
| double | regionPointY, | ||
| double * | imagePointX, | ||
| double * | imagePointY | ||
| ) |
将坐标从当前区域的局部坐标系转换到整个图像的坐标系
| [in] | regionPointX | 像素在当前区域的局部坐标系上的 x 坐标 |
| [in] | regionPointY | 像素在当前区域的局部坐标系上的 y 坐标 |
| [out] | imagePointX | 输出像素在整个图像的坐标系上的 x 坐标 |
| [out] | imagePointY | 输出像素在整个图像的坐标系上的 y 坐标 |
从输入图像中获取当前区域的子图像。去除不在区域中的像素,子图像的尺寸为当前区域的包围矩形尺寸。 若当前区域不是一个矩形,将生成一个蒙版图像,其中白像素表示在该位置包含在当前区域中。
| [in] | image | 输入图像 |
| [out] | newImage | 输出结果图像 |
| [out] | newMask | 输出结果蒙版 |
| ILRegion* Rotate | ( | double | da | ) |
以区域中心为旋转中心顺时针旋转当前区域,生成一个新的区域。
注意:旋转后的 LRectRegion 或 LMaskRegion 对象可能比原始区域更大,因为旋转后的顶点的包围矩形组成了结果区域范围。
| [in] | da | 旋转角度 |
| newRegion | 输出一个新的区域对象,其类型与输入区域相同 |
| 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 | 输出一个新的区域对象,其类型与输入区域相同 |
| ILRegion* Scale | ( | double | factorX, |
| double | factorY | ||
| ) |
缩放当前区域,生成一个新的区域对象,保持区域中心点不变。
注意:对于 LCircleRegion 或 LAnnulusRegion 对象,不支持非等比缩放。
| [in] | factorX | x 方向的缩放比例 |
| [in] | factorY | y 方向的缩放比例 |
| newRegion | 输出一个新的区域对象,其类型与输入区域相同 |
| ILCompoundRegion* Subtract | ( | ILRegion * | other | ) |
从当前区域中减去输入的区域,生成一个新的区域,P' = P - other.
| [in] | other | 输入用于减去的区域 |
| newRegion | 输出一个新的复合区域对象 |
| ILImage* ToMask | ( | int | w, |
| int | h | ||
| ) |
为当前区域生成一个蒙版图像,该图像为 w * h 尺寸,图像中的白i像素表示该位置包含在当前区域中。
| [in] | w | 指定输出蒙版图像的宽度 |
| [in] | h | 指定输出蒙版图像的高度 |
| newRegion | 输出生成的蒙版图像 |
| ILRegion* Translate | ( | double | offsetX, |
| double | offsetY | ||
| ) |
平移当前区域,生成一个新的区域对象,P' = P + offset.
| [in] | offsetX | x 方向的平移量 |
| [in] | offsetY | y 方向的平移量 |
| newRegion | 输出一个新的区域对象,其类型与输入区域相同 |
| ILCompoundRegion* Union | ( | ILRegion * | other | ) |
将当前区域与输入的区域进行与操作,生成一个新的区域,P' = P U other. 与 Add() 相同,新的区域包含当前区域和输入区域中所包含的所有部分。
| [in] | other | 输入用于与操作的区域 |
| newRegion | 输出一个新的复合区域对象 |
| ILCompoundRegion* XOR | ( | ILRegion * | other | ) |
将当前区域与输入的区域进行异或操作,生成一个新的区域, P' = P XOR other. 新的区域仅包含属于当前区域但不属于输入区域或属于输入区域但不属于当前区域的部分。
| [in] | other | 输入用于异或操作的区域对象 |
| newRegion | 输出一个新的复合区域对象 |
|
getset |
生成子图像时所使用的生成角度。
默认设置为 0,即无旋转。设置非 0 的角度,在生成子图像时,将按顺时针旋转子图像。该功能适用于转正矩形区域所在的图像。
|
getset |
生成子图像时所使用的缩放比例。
默认设置为 1,即无缩放。设置合适的数值,将缩放生成子图像到给定的比例。