人机协同控制模块
视觉算法+运动控制引擎
开发周期缩短40%+

十二.关注区模块

Pick模块定义需要处理的图像区域和形状,即ROI(Region of Interest),本文称之为关注区。根据形状来分类,有两大类,一为线形关注区, 二为面形关注区。 关注区由形状的几何信息,对应的子图像,和掩模组成。 子图像和掩模及其位置,宽度高度信息构成ROI对象。

声明文件: pick.h

库文件: pick.lib, pick.dll

12.1裁片的类型

由于裁片有很多种类型,在选择裁片时,需要考虑使用的图像区域和该区域图像的形状是否与裁片相合。这些裁片有宽度值,因此可以看作是两维的像素区域。该类的裁片包括矩形,平行四边形,圆环形,弧形。

12.1.1矩形裁片(Rectangle)

矩形裁片是最常用的裁片, 可以旋转。

12.1.2圆环裁片

该裁片是一种特殊的面裁片。由两个同心圆组成的区域。

12.1.3弧环裁片

是一种特殊的面裁片。由两个同心圆弧和相应的直线组成的区域

12.1.4同心圆裁片

该裁片由一组同心圆组成。默认情况下,1个圆。

下面是一些有效的裁片坐标和索引。

矩形:

索引0, 坐标 x:裁片左上角的 x 位置

索引 0, 坐标 y: 裁片左上角的 y 位置

索引 1, 坐标 x: 裁片右下角的x 位置

索引 1, 坐标 y: 裁片右下角的y 位置

索引 3, 坐标 x: 裁片的旋转;千分之一弧度为单位 。 1570这里是1.57 弧度(90度).

圆(Circle):

索引 0, 坐标 x: 中心点x 位置

索引 0, 坐标 y: 中心点y 位置

索引 1, 坐标 x: 控制半径和圆起始点的x 位置

索引 1, 坐标 y: 控制半径和圆起始点的y 位置

圆弧(Arc):

索引 0, 坐标 x: 起始点的 x 位置。

索引 0, 坐标 y: 起始点的 y 位置。

索引 1, 坐标 x: 结束点x 位置。

索引 1, 坐标 y: 结束点y 位置。

索引 2, 坐标 x: 圆弧上任意一点的x 位置

索引 2, 坐标 y: 圆弧上任意一点的y 位置

弧环(Annulus):

索引 0, 坐标 x: 起始点x 位置

索引 0, 坐标 y: 起始点 y 位置

索引 1, 坐标 x: 结束点x 位置

索引 1, 坐标 y: 结束点y 位置

索引 2, 坐标 x: 圆弧内任意一点的x 位置。

索引 2, 坐标 y: 圆弧内任意一点的y 位置。

索引 3, 坐标 x: 圆弧外任意一点的x 位置 。

索引 3, 坐标 y: 圆弧外任意一点的y 位置 。

圆环(Torus):  

索引 0, 坐标 x: 中心点x 位置

索引 0, 坐标 y: 中心点y 位置

索引 1, 坐标 x: 圆内的任意一点的(控制半径和起始点)x 位置

索引 1, 坐标 y: 圆内的任意一点的(控制半径和起始点)y 位置

索引 2, 坐标 x: 圆外的任意一点的x 位置

索引 2, 坐标 y: 圆外的任意一点的y 位置

12.2函数说明

12.3常量

关注区显示类型

RPS_DEFAULT - 默认显示,即不显示关注区

RPS_SKETCH - 仅显示关注区边缘线

RPS_SOLID - 显示所有关注区的区域

RPS_GRID - 显示关注区边缘,里面的区域以方格点显示

关注区形状类型

RPT_CIRCLE – 实心圆

RPT_RECT - 实心矩形

RPT_ANNULUS – 圆弧环

RPT_TORUS - 圆环

RPT_ADAPT – 自适应

RPT_CUSTOM – 定制

创建关注区

声明:RvRegion rpkCreate(RvPickType type)

描述:创建指定类型的关注区

参数:RvPickType type – 关注区类型。

返回: 关注区对象,如错误,返回NULL。

销毁关注区

声明:void rpkDestroy(RvRegion self);

描述:销毁关注区对象

参数:RvRegion self – 关注区对象。

返回: 无 。

拷贝关注区

声明:RvRegion rpkClone(RvRegion self);

描述:拷贝自身关注区,产生一个新的一样的关注区

参数:RvRegion self – 关注区

返回:新关注区。

注意: 新的关注区对象在程序生命周期结束前,使用Destroy函数进行释放。

设置关注区几何属性

声明:void rpkSetGeometry(RvRegion self, int index, int val);

描述:设置关注区的几何属性的值。

参数:1、RvRegion self – 关注区

2、int index – 索引

3、int val – 值

返回:无。

获取关注区几何属性

声明:int rpkGetGeometry(const RvRegion self, int index);

描述:获取关注区的几何属性的值。

参数:1、RvRegion self – 关注区

2、int index – 索引

返回:当前值。

获取关注区几何属性个数

声明:int rpkGetGeometryCount(const RvRegion self);

描述:获取关注区几何属性的个数

参数:const RvRegion self – 关注区

返回:数量

绘制关注区

声明:void rpkDraw(HGDC pDc, const RvRegion self);

描述:在图像上下文中绘制关注区

参数:1、HGDC pDc – 图像上下文

2、const RvRegion self – 关注区

返回:无。

移动关注区

声明:void rpkMove(RvRegion self, int dx, int dy);

描述: 移动关注区

参数:1、RvRegion self – 关注区

2、int dx – 水平方向位移

3、int dy – 垂直方向位移

返回:无。

设置关注区角度

声明:void rpkSetAngle(RvRegion self, int angle);

描述:设置关注区的角度

参数:1、RvRegion self – 关注区

2、int angle –角度, 精度有PK_ANGLE_ACCURACY 定义

返回:无。

使关注区支持旋转

声明:void rpkEnableRotation(RvRegion self, RvBool bFlag );

描述:使关注区支持旋转

参数:1、RvRegion self – 关注区

2、RvBool bFlag – 标记

返回:无。

从图像中读取对应位置的图像数据

声明:void rpkShot(RvRegion self, const RvImage image, BOOL bQuality=TRUE);

描述:从图像中读取对应位置的图像数据

参数:1、RvRegion self – 关注区

2、const RvImage image – 图像

3、BOOL bQuality – 是否保持像素精度

返回:无。

从图像中读取对应位置的图像数据(位移读取)

声明:void rpkShotEx(RvRegion self, const RvImage image, int x , int y , BOOL bQuality=TRUE );

描述:从图像中读取对应位置的图像数据(位移读取)

参数:1、RvRegion self – 关注区

2、const RvImage image – 图像

3、int x – 水平方向的位置

4、int y – 垂直方向的位置

5、BOOL bQuality – 是否草纸像素精度

返回:无。

从图像中读取对应位置的图像数据,(旋转读取)

声明:void rpkShotEx(RvRegion self, const RvImage image, GPoint center, float nRotate, BOOL bQuality=TRUE);

描述:从图像中读取对应位置的图像数据,(旋转读取)

参数:1、RvRegion self – 关注区

2、const RvImage image – 图像

3、GPoint center - 中心位置,

4、float nRotate – 旋转角度

5、BOOL bQuality – 是否保持像素精度

返回:无。

获取关注区的兴趣区的子图像

声明:RvImage rpkGetSubImage(RvRegion self);

描述:获取关注区的兴趣区的子图像

参数:RvRegion self – 关注区

返回:子图像

更新关注区的掩模

声明:void rpkUpdateMask(RvRegion self);

描述:更新关注区的掩模

参数:RvRegion self – 关注区

返回:无。

获取关注区的类型

声明:RvPickType rpkGetType(RvRegion self);

描述:获取关注区的类型

参数:RvRegion self – 关注区

返回:类型

获取关注区显示风格

声明:int rpkGetStyle(const RvRegion self);

描述:获取关注区显示风格

参数:const RvRegion self – 关注区

返回:风格

RPS_DEFAULT - 默认显示,即不显示关注区

RPS_SKETCH - 仅显示关注区边缘线

RPS_SOLID - 显示所有关注区的区域

RPS_GRID - 显示关注区边缘,里面的区域以方格点显示

设置关注区的显示风格

声明:void rpkSetStyle(RvRegion self, int style);

描述:设置关注区的显示风格

参数:1、RvRegion self – 关注区

2、nt style – 风格

3、返回:无。

获取关注区掩模

声明:RvMask rpkGetMask(RvRegion self);

描述:获取关注区掩模

参数:RvRegion self – 关注区

返回:掩模



QQ技术交流群:
微信技术交流群:
Marklab工作室
研发中心: 广东省东莞市大岭山镇元岭小区翠云街1巷16号
商务中心: 广东省东莞市松湖智谷B6栋225b

二维码1 二维码2 二维码3


Marklab工作室 版权所有  粤ICP备13082990号-2   友情链接 hao123 绿盟 搜狗 站长之家 太平洋下载 天极下载 淘宝店 软云动力

赞助和协作单位 广东省科学院自动化研究所 深圳市东百胜技术有限公司

统计显示 ▼