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

八.图象分析模块

头文件:anlz.h

库文件:anlz.lib,anlz.dll

图象分析模块主要分析图象的各种特性,如颜色,边缘点,将一个或多个特征值返回。

8.1常量

8.2函数

rvCreateContour

声明:RvContour rvCreateContour(int codeType );

描述:创建轮廓线对象。

参数:int codeType- 编码类型

返回:轮廓线对象

rvDestroyContour

声明:void rvDestroyContour(RvContour contour);

描述:销毁轮廓线对象。

参数:RvContour contour-轮廓线对象

返回: 无

rvContourRecycler

声明:inline void rvContourRecycler(HANDLE contour) { rvDestroyContour((RvContour) contour); }

描述:回收轮廓线对象。

参数:RvContour contour-轮廓线对象

返回:无

rvGetContourPath

声明:RvSequence rvGetContourPath(const RvContour contour);

描述:获取轮廓线数据。

参数:RvContour contour-轮廓线对象

返回:返回轮廓线数据对象(序列)

rvGetContourRect

声明:RvRect rvGetContourRect(RvContour contour);

描述:获取轮廓线数据。

参数:RvContour contour-轮廓线对象

返回:返回轮廓线数据对象(序列)

rvFindContours

声明:RvCollect rvFindContours(RvImage image, int code , GColorRef color , BOOL bCutEdge , RvCollect collect );

描述:查找轮廓线 。

参数:1、RvImage image-源图象 2、int code-编码类型 3、GColorRef color-颜色 4、BOOL bCutEdge-是否切割边缘轮廓线 5、RvCollect collect- 保存结果的集合

返回: 轮廓线集合

rvArrangeContours

声明:RvCollect rvArrangeContours(RvSequence contourList, int mode, RvCollect pCollect);

描述:组织轮廓线 。

参数:1、RvSequence contourList-轮廓线列表 2、int mode- 模式 3、RvCollect pCollect –集合

返回: 轮廓线集合

rvRecodeContours

声明:RvContour rvRecodeContours(RvContour contour, int code);

描述:将轮廓线重新编码 。

参数:1、RvContour contour-轮廓线对象 2、int code- 编码

返回:轮廓线

rvApproxContours

声明:RvContour rvApproxContours(RvContour contour, int method, RvContour pDest);

描述:将轮廓线拟合成线段

参数:1、RvContour contour-轮廓线对象 2、int method,-方法 3、RvCollect pCollect –集合

返回:轮廓线

rvCountPixel

声明:UINT rvCountPixel (const RvImage image, int level, const RvMask mask );

描述:计算指定灰度值的像素数量

参数:1、const RvImage image-灰度图象

2、int level-灰度值

3、const RvMask mask-掩膜

返回:像素数量

rvCountPixelEx

声明:rvCountPixelEx(const RvImage image, int low, int high , const RvMask mask);

描述: 计算指定区间的像素数量

参数:1、const RvImage image-灰度图象 2、int low-下区间 3、int high- 上区间 4、const RvMask mask-掩膜

返回:像素数量

RvHisto

声明:RvReadingBank RvHisto(RvImage image, const RvMask mask ,RvReadingBank reading );

描述:计算读取图象中的HISTOGRAM表

参数:1、const RvImage image-灰度图象 2、const RvMask mask-掩膜 3、RvReadingBank reading-读数银行

返回:读数银行

rvRetrieveBoundRect

声明:RvRect rvRetrieveBoundRect(RvImage image, int level, const RvMask mask );

描述:提取指定灰度级的对象的外围矩形。

参数:1、const RvImage image-灰度图象 2、int level-灰度值 3、const RvMask mask -掩膜

返回:RvRect对象

rvPosition

声明:RvPoint_f rvPosition(const RvImage image, int level , const RvMask mask);

描述:提取指定灰度级的对象的位置。

参数:1、const RvImage image-灰度图象 2、int level-灰度值 3、const RvMask mask -掩膜

返回:对象位置

rvPixelPolar

声明:RvReadingBank rvPixelPolar(const RvImage image, int flags, const RvMask mask, RvReadingBank reading );

描述:搜索裁片中最大和最小像素的值和位置。

参数:1、const RvImage image-灰度图象 2、int flags – 标志 3、const RvMask mask -掩膜 4、RvReadingBank reading-读数银行

返回:读数银行

rvProfile

声明:RvReadingBank rvProfile(RvImage image, int flags, const RvMask mask, RvReadingBank reading );

描述:统计分析裁片的平均值,算术和,方差等等。

参数:1、const RvImage image-灰度图象 2、int flags – 标志 3、const RvMask mask -掩膜 4、RvReadingBank reading-读数银行

返回:读数银行

rvSummary

声明:UINT rvSummary(const RvImage image, const RvMask mask , float* pAvg, float* pVar);

描述:将图象中所有像素的像素值累加。

参数:1、const RvImage image-灰度图象 2、const RvMask mask-掩膜 3、float* pAvg-平均(输出) 4、float* pVar-方差(输出)

返回:累加和

rvVariance

声明:rvVariance(const RvImage image, const RvMask mask );

描述:计算裁片中像素的方差(标准方差的平方)。

参数:1、const RvImage image-灰度图象 2、const RvMask mask-掩膜

返回:方差

rvAverage

声明:float rvAverage(const RvImage image, const RvMask mask, float* pVar );

描述:计算裁片内像素的平均值。

参数:1、const RvImage image-灰度图象 2、const RvMask mask-掩膜

返回:平均值

rvProject

声明:RvReadingBank rvProject(RvImage image, int dir, const RvMask mask, RvReadingBank reading );

描述:计算图象在垂直与水平方向的倒影

参数:1、const RvImage image-灰度图象 2、const RvMask mask-掩膜 3、RvReadingBank reading-读数银行

返回:读数银行

rvGetBoundBox

声明:RvBox2D rvGetBoundBox (RvImage image, const RvMask mask);

描述:计算完全包围二元图像的最小矩形。该矩形包括方向角度信息。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜旦

返回:RvBox2D 数据结构

rvCircular

声明:double rvCircular(const RvImage image, const RvMask mask );

描述:计算二元图像的圆度或长宽比。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜比皆是

返回:圆度

rvArea

声明:UINT rvArea(const RvImage image, const RvMask mask );

描述:计算二元图像的面积(前景对象的像素数量)。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜比皆是

返回:面积

rvPerimeter

声明:UINT rvPerimeter(const RvImage image, const RvMask mask )

描述:计算二元图像的周长(存在非前景点邻居的前景点数量)。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜比皆是

返回:周长

rvDensity

声明:double rvDensity(const RvImage image, const RvMask mask, int partA, int partB)

描述:计算二元图像的密度。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜 3、 int partA – A区 4、 int partB – B区

返回:密度。

备注:根据区域选择的不同,可以得到不同的密度。密度为A区除以B区。A区和B区的选择如下:

RV_BSP_WHOLE - 整个图象

RV_BSP_NORTH -北部

RV_BSP_EAST -东部

RV_BSP_SOUTH -南部

RV_BSP_WEST -西部

RV_BSP_NW -西北

RV_BSP_NE -东北

RV_BSP_SW -西南

RV_BSP_SE -东南

rvSlope

声明:double rvSlope(const RvImage image, const RvMask mask )

描述:计算二元图像的斜度。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜

返回:斜度。

rvCentroid

声明:RvPoint_f rvCentroid(const RvImage image , const RvMask mask);

描述:计算二元图像的质心。

参数:1、const RvImage image-二元图象 2、const RvMask mask-掩膜

返回:质心。

rvHoughLine

声明:int rvHoughLine(RvImage image, int method, double rho, double theta, int threshold, double option1, double option2, RvLine_f* pReadingArray, int nArraySize);

描述:根据霍夫变换求直线。

参数:1、RvImage image -二元图象

int method – 方法。该值为RV_HL_SHT(标准霍夫), RV_HL_PPHT(概率霍夫) 或RV_HL_MS (多重缩放)

double rho – 距离分辨率(象素为单位)

double theta – 角度分辨率(弧度)

int threshold – 累加值阈值,可以判断是否为直线

double option1 – 第一个与具体方法有关的参数:

标准霍夫没有用
概率霍夫下为直线的最小长度。
多重霍夫下为距离分辨率的除数。

double option2 –第二个与具体方法有关的参数:

标准霍夫没有用
概率霍夫为线段之间的最大间距,这样可以判断是否为同一直线上不同线段,可以进行合并。
多重霍夫下为角度分辨率的除数

RvLine_f* pReadingArray- 直线数组(输出)

int nArraySize- 直线数组大小

返回:直线数量。

备注:该函数与OPENCV函数同名函数的用法一致。

rvHoughCircle

声明:Int rvHoughCircle(RvImage image, int method, double dp, double minDist, int minRadius, int maxRadius, double option1, double option2, RvEllipse_f * pReadingArray, int nArraySize)

描述:根据霍夫变换求圆。

参数:1、RvImage image -二元图象

int method – 方法。 目前仅为RV_HC_GRADIENT

double dp– 用于检测圆中心的累加器分辨率

double minDist– 圆与圆之间的最小距离

int minRadius – 最小半径

int maxRadius – 最大半径

double option1 – 第一个与具体方法有关的参数:

RV_HC_GRADIENT –为canny边缘检测算子的较大阈值

double option2 – 第二个与具体方法有关的参数:

RV_HC_GRADIENT –中心点累加器阈值

RvEllipse_f * pReadingArray- 圆数组(输出)

int nArraySize-圆数组大小

返回:圆数量。

备注:该函数与OPENCV函数同名函数的用法一致。



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

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


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

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

统计显示 ▼