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

该接口类提供了提供了用于访问、操作、绘制 LPV 图像对象的功能。 更多...

类 ILImage 继承关系图:
ILObject LImage

Public 成员函数

void CopyFrom (ILImage *img, ILRegion *region, int panX, int panY)
 
void CopyTo (ILImage *dstImg)
 
void Draw (HDC hdc, double zoomX, double zoomY, double panX, double panY)
 
void DrawAsMask (HDC hdc, double zoomX, double zoomY, double panX, double panY)
 
ILImageGetChannel (int channelIdx)
 
LPVErrorCode Save (LString filename, ILRegion *region)
 
void SetChannel (int channelIdx, ILImage *channelImage)
 
void SetImageData (int w, int h, LPVOID dataPtr, int bpl, BOOL copyData)
 
void SetSize (int w, int h)
 
void SetTo (int val, ILRegion *region)
 
void SetToColor (LColor val, ILRegion *region)
 
- Public 成员函数 继承自 ILObject
ILObjectCopy ()
 
LPVErrorCode Load (LString filename)
 
void Reset ()
 
LPVErrorCode Save (LString filename)
 
BOOL Valid ()
 

属性

int BytesPerLine [get]
 每行像素数据的字节数,包含行末用于对齐的字节。
 
LPVOID DataPointer [get]
 图像数据指针。注意不要在外部修改数据块的内容。
 
int Height [get]
 图像的高度,行的总数
 
LPVImageFormat ImageFormat [get, set]
 图像类型
 
int Pixel (int x, int y) [get, set]
 
LColor PixelColor (int x, int y) [get, set]
 
int Width [get]
 图像的宽度,列的总数
 

详细描述

该接口类提供了提供了用于访问、操作、绘制 LPV 图像对象的功能。

图像是视觉系统的核心对象。该接口整合了用于表示一个矩形图像的所有功能,以一个二维密集矩阵的形式,按行存储图像的像素。

使用这个接口,需要创建一个 LImage 对象。

该接口提供了多种初始化图像数据的方式,以下列出几种较为常用的方式。

  1. 从文件读取图像,调用 ILImage::Load()
  2. 使用数据指针和图像信息初始化图像数据,调用 ILImage::SetImageData()。通常在连接相机时,在相机的回调函数中使用这种方式。
  3. 手动设置图像尺寸,然后为每个像素单独赋值。请注意这种方式十分低效。

示例代码

成员函数说明

◆ CopyFrom()

void CopyFrom ( ILImage img,
ILRegion region,
int  panX,
int  panY 
)

复制输入图像的内容并覆盖当前图像的指定位置

参数
[in]img输入的图像。若输入图像的尺寸过大或超出当前图像的范围,多余部分将被忽略。
[in]region输入的区域。用于剪裁输入图像的一部分作为拷贝对象。可为空。
[in]panXx 方向的平移量
[in]panYy 方向的平移量

◆ CopyTo()

void CopyTo ( ILImage dstImg)

拷贝到另一个图像对象。
若当前图像类使用内部数据块,将拷贝该数据块到 dstImg,修改 dstImg 的图像数据,不会影响当前图像类。 否则,仅将数据指针传递到 dstImg,而不拷贝数据,修改 dstImg 的图像数据将同时修改当前图像类。

参数
[out]dstImg拷贝到该目标图像

◆ Draw()

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

在给定的设备上绘制图像。

参见
DrawAsMask()
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ DrawAsMask()

void DrawAsMask ( HDC  hdc,
double  zoomX,
double  zoomY,
double  panX,
double  panY 
)

以蒙版形式绘制图像到给定设备,保留图像中的非零值。

参见
Draw()
Use Draw Functions
备注
该函数在 Linux / MacOS 平台暂不可用。

◆ GetChannel()

ILImage* GetChannel ( int  channelIdx)

从彩色图像中提取某一个给定索引的通道图像。仅用于彩色图像。

参数
[in]channelIdx输入的通道索引,可为 0,1 或 2
返回值
channelImage 返回通道图像。这是一张灰度图,尺寸与当前的彩色图像相同。

◆ Save()

LPVErrorCode Save ( LString  filename,
ILRegion region 
)

保存图像对象到指定的文件。保存格式有输入路径中的扩展名指定。当前版本,支持保存 BMP, PNG, JPG, JPEG 格式。

参数
[in]region指定保存图像中的局部区域。可为空,则保持全图。
[in]filename文件路径,可为绝对或相对路径,包含文件夹、文件名和扩展名
返回值
error返回错误码
参见
Save(), Load()

◆ SetChannel()

void SetChannel ( int  channelIdx,
ILImage channelImage 
)

设置彩色图像中某一个给定索引的通道图像。仅用于彩色图像。

参数
[in]channelIdx输入的通道索引,可为 0,1 或 2
[in]channelImage 输入的通道图像。这是一张灰度图,尺寸与当前的彩色图像相同。

◆ SetImageData()

void SetImageData ( int  w,
int  h,
LPVOID  dataPtr,
int  bpl,
BOOL  copyData 
)

通过外部创建和管理的数据块,初始化图像数据。
若 copyData 设置为 False,该外部数据块覆盖当前图像类内部创建的数据块,用户需要保证在图像类的整个生命周期里,该外部数据块始终存活。
若 copyData 设置为 True,图像类将会把数据从外部数据块中拷贝到其内部创建的数据块中,并在内部管理其生命周期,用户无需额外保存该外部数据块。

参数
[in]w图像的宽度,以像素为单位的正整数。
[in]h图像的高度,以像素为单位的正整数。
[in]dataPtr指向外部数据块的数据指针
[in]bpl每行像素数据的字节数,包含行末用于对齐的字节。若设置为 0,则按照无对齐的假设,以图像宽度和每个像素的字节数自动计算。
[in]copyData是否拷贝外部数据块的内容。

◆ SetSize()

void SetSize ( int  w,
int  h 
)

设置图像为指定尺寸。像素的数值为未定义的,可调用 SetTo()SetToColor() 接口将其全部设置为 0 或其他数值。 如果当前图像尺寸与设置尺寸相同,保留当前数据。 输入 0 的宽度和高度,将重置该图像为空。

参数
[in]w输入图像宽度
[in]h输入图像高度

◆ SetTo()

void SetTo ( int  val,
ILRegion region 
)

将图像中给定区域内的像素设置为指定的灰度值

参数
[in]val灰度值
[in]region输入的区域。若输入区域的尺寸过大或超出当前图像的范围,多余部分将被忽略。可为空,表示整个图像。

◆ SetToColor()

void SetToColor ( LColor  val,
ILRegion region 
)

将图像中给定区域内的像素设置为指定的 RGB 值。仅用于彩色图像。

参数
[in]val颜色值
[in]region输入的区域。若输入区域的尺寸过大或超出当前图像的范围,多余部分将被忽略。可为空,表示整个图像。

属性说明

◆ Pixel

int Pixel
getset

图像中某个像素的灰度值

参数
[in]x像素的 x 坐标
[in]y像素的 y 坐标

◆ PixelColor

LColor PixelColor
getset

图像中某个像素的颜色值

参数
[in]x像素的 x 坐标
[in]y像素的 y 坐标