武汉求微科技有限公司

>> 您现在的位置:软件介绍
00 引言

图像目标检测与识别是计算机视觉和人工智能领域中最活跃的研究主题之一,在图像检索、视频监控、工业检测等许多方面都有着重要的应用。

从上世纪70年代开始,就有许多研究者关注这一主题,并取得了一些重要的成果,开发了针对特定类别的实用的模式识别系统,比如光学字符识别系统、固定场景下的车牌识别系统等。但算法采用的特征集局限于某一类特定类别的目标物体,使之很难推广到其它类别的目标检测与识别任务中。

因此,从上世纪90年代中后期以来,越来越多的研究者将目光转向非特定类别物体的目标检测与识别算法研究,并取得了明显的阶段成果。

然而,通用图像目标检测与识别的研究进展,跟人们的期望相比,仍然有很大的差距。究其原因,技术方面主要存在很大的困难和挑战,如同类别差异、视点变化、光照差异、遮挡问题、复杂背景等。

作者从2005年开始,投入大量时间精力和硬件资源,持之以恒专注于图像目标检测与识别的通用化和工具化开发。这一二十年来,多次推翻之前的架构而重新开发,最终形成具有完全自主知识产权的"QWGDR通用检测与识别软件"。该软件经过长期的实测和应用,已在多种应用场景获得良好运行效果,实现图像目标检测与识别的通用化和工具化。

 
01 配置工作内核 02 训练神经网络 03 运行工作内核 04 研判运行结果
05 样本标注工具 06 图像处理工具 07 视频编解码器 08 其它辅助工具
09 高级参数配置 10 工业机器视觉 11 版权声明和免责声明 12 图像处理指令

01 配置工作内核

返回

根目录路径:内核根目录路径\n不能包含空格。

工作目录名称:内核工作目录名称\n不能包含空格。
简要描述:内核简要描述\n不能包含空格。

特征向量场:根目录下特征向量场图像文件名的连接串\n顺序:检测器|比对器|匹配器|定位器|识别器|\n文件名不足5个时,用最后一个补齐到5个\n不能包含空格\n通常无须设置特征向量场。

内核运行模式:目标检测;目标比对;目标匹配;目标定位;目标识别;目标检测->目标比对;目标检测->目标匹配;目标检测->目标识别;目标检测->目标定位->目标识别;目标定位->目标识别。

视频背景减除:背景建模图像数\n该值小于1时,禁用背景减除\n背景不固定时须禁用。

视频静物检测:启用/禁用静物剔除。

目标检测器/比对器/匹配器/识别器特征向量扩展模式:启用/禁用水平翻转;启用/禁用垂直翻转;启用/禁用旋转90度。

目标检测器感兴趣区域:格式:左,上,右,下\n每个取值均为[0,1]的相对位置\n例如:0,0,1,1。

目标检测器旋转角度:例如一:0\n例如二:0,10,20,30,40,50,60,70,80。

目标检测器搜索模式:子图搜索;整图比对。

目标定位器输出矩形框个数:最少1个输出矩形框。

目标识别器输出层结点个数:最少1个输出层结点。

目标匹配器语义表:格式:ID值1:输出串1|ID值2:输出串2|ID值3:输出串3|...\n例如:1:张三|2:李四|3:王五|\n不能包含空格。

目标识别器语义表:格式:模式值1:输出串1|模式值2:输出串2|模式值3:输出串3|...\n例如:0:没戴口罩|1:口罩没戴好|3:口罩已戴好|\n不能包含空格。

"浏览"按钮:浏览文件夹。

"标注"按钮:标注感兴趣区域。

"高级"按钮:高级参数配置。

02 训练神经网络

返回

正样目录:正样本目录\n不能为空。

负样目录:负样本目录\n允许为空。

纠错目录:纠错新增负样本的图库目录\n允许为空。

样本目录:样本目录\n不能为空。

目标检测器训练参数:格式:fRhoTP1,bTrainFirstVT,bRandomFirstSD,bTrainFirstSD,fRhoTM1,fMaxScoreM1,nMaxLearnCountL1,nMinErrorID,
nMaxErrorID,nMidErrorID,bGradeE,fMinValA2E,\n\tfMaxScoreE,fRhoTE1,fRhoTE2,nMinSamCountE1,nMinSamCountE2,fMaxScoreME,
nMaxLearnCountE,bTrainLastSD,bTrainLastVT,fMinScoreP,fMaxScoreM,fRhoTP2,\n\tfRhoTM2,nMaxLearnCountL2,nThreadCountFI(nThreadCountM),
nSDThreadCountT(AllDtt),fMaxLearnSpeed2(AllDtt),fLastAveErrBias(AllDtt),sLastErrFactor(AllDtt)\n例如:
1,1,0,1,1,0.65,480000,1,12,4,0,0.25,0.99,0.99,0.99,2,1,0.65,40000,1,0,0,1,1,1,480000,128,128,100,0,2.618。

目标定位器训练参数:格式:nThreadCount,nMaxLearnCount,fMaxLearnSpeed2,fLastAveErrBias,sLastErrFactor\n例如:128,480000,100,0,2.618。

目标识别器训练参数:bTrainSDAnnE,nThreadCount,nMaxLearnCount,fMaxLearnSpeed2,fLastAveErrBias,sLastErrFactor\n例如:0,128,480000,100,0,2.618。

"浏览"按钮:浏览文件夹。

"训练"按钮:开始训练目标检测器/比对器/匹配器/定位器/识别器。负样目录和纠错目录均为空时,适用于正样本数较少且对误判宽容的目标检测。

"停止"按钮:停止训练目标检测器/比对器/匹配器/定位器/识别器。

03 运行工作内核

返回

起始文件相对索引:取值为[0,1]的相对索引\n例如:0。

终止文件相对索引:取值为[0,1]的相对索引\n例如:1。

图像预处理指令:内核图像预处理指令。指令语法参见"图像处理指令"章节。六个设置函数,只能在这里设置,在其它地方设置均无效。

目标检测器输出:启用/禁用按检测得分排序。

目标识别器输出:启用/禁用按识别结果排序。

运行参数:格式:nProcessCountV,nThreadCountIV,nThreadCountS,nThreadCountFI(nThreadCountM),nMinCountITS,nMaxCountITS,\n\tfMinScoreTS,
fMinScoreTG,fMinScoreM,bGradeI,bSaveTgt(GradeI),bSaveFail(GradeI)\n例如:32,8,1,128,1,128,0.25,0.25,0.25,0,0,1。

起始帧相对索引:取值为[0,1]的相对索引\n例如:0。

终止帧相对索引:取值为[0,1]的相对索引\n例如:1。

排序文件:不排序;先大后小。

浓缩模式:不浓缩;普通浓缩;精细浓缩。

视频目录:视频目录\n不能为空。

图像目录:图像目录\n图像目录为空且内核运行模式为"目标检测->目标比对"时:内核运行模式自动设为"目标比对",图像目录自动设为目标检测器的运行结果目录\n图像目录为空且内核运行模式为"目标比对"时:图像目录自动设为目标检测器的运行结果目录。

"语法"按钮:指令语法参见"图像处理指令"章节。

"浏览"按钮:浏览文件夹。

"运行"按钮:开始运行\n开始运行之前请先确认内核运行模式是否正确。

"停止"按钮:停止运行。

04 研判运行结果

返回

图像目录:当前图像目录。

页索引:当前页索引。

行数:每页分行数。

列数:每页分列数。

"☆"按钮:弹出快捷菜单[F12]。

快捷菜单:刷新;浏览文件夹;显示(所有得分、1级得分、2级得分、3级得分、4级得分、5级得分、6级得分、7级得分、8级得分、9级得分、文件源、关键串);控制(文件源升序、文件源降序、关键串升序、关键串降序、跳过无标注);全部选择;全部不选;反向选择;复制;移动;删除;复制源;移动源;删除源;加入忽略列表。

"┠"按钮:第一页[Home]。

"《"按钮:上一页[Up/PgUp]。

"》"按钮:下一页[Down/PgDn]。

"┨"按钮:最后一页[End]。

"→"按钮:跳转到。

"刷新"按钮:刷新图像目录[F5]。

"浏览"按钮:浏览文件夹[Ctrl+B]。

"修改"按钮:修改行列数。

左键单击:选择图像。

Control键+左键单击:取消选择。

Shift键+左键单击:从前往后时,区间选择图像;从后往前时,取消区间选择。

左键双击:跳转到原始视频帧位置或原始图像目录文件位置。

中键单击:全部不选。

05 样本标注工具

返回

图像目录:当前图像目录。

文件索引:文件索引[F12/Ctrl+M:移动当前文件到临时目录;Ctrl+'+':加快索引步长;Ctrl+'-':减慢索引步长]。

标注区域/样本期望:标注区域\n每个取值均为[0,1]的相对位置和尺寸\n例如一:左,上,右,下,左,上,右,下,...,左,上,右,下\n例如二:fLeft0,fTop0,fWidth,fHeight,dfLeft,dfTop,xMinimum,xMaximum,yMinimum,yMaximum\n例如三:DEF:左,上,右,下,左,上,右,下,...,左,上,右,下\n例如四:DEF:fLeft0,fTop0,fWidth,fHeight,dfLeft,dfTop,xMinimum,xMaximum,yMinimum,yMaximum\n样本期望\n格式:T2:nBitCount/*>0*/,nT2/*-1,0,1,2,3,...*/,fMinT2/*0,0.001*/,fMaxT2/*1,0.999*/

"┠"按钮:第一张[Home]。

"《"按钮:上一张[Up/PgUp]。

"》"按钮:下一张[Down/PgDn]。

"┨"按钮:最后一张[End]。

"→"按钮:跳转到。

"浏览"按钮:浏览文件夹。

"修改"按钮:修改标注区域/样本期望。

"清除"按钮:清除标注区域。

"分割"按钮:开始分割样本[Ctrl+D:从XML分割样本]。

左键单击:调整当前标注区域。在当前标注区域的方框外左键单击,向外扩大标注区域(如果想要向内缩小标注区域,必须先中键单击即清除标注区域后重新标注);在当前标注区域的方框内左键单击,等价于右键单击即确认当前标注区域。

右键单击:确认当前标注区域(如果没有右键单击确认,当前标注区域则没有保存)。可以继续标注多个区域。

中键单击:清除标注区域。

06 图像处理工具

返回

图像目录:当前图像目录。

处理指令:图像处理指令。指令语法参见"图像处理指令"章节。

文件索引:文件索引[F12/Ctrl+M:移动当前文件到临时目录]。

旋转角度:初始图像旋转角度\n例如:0,10,20,30,40,50,60,70,80。

"┠"按钮:第一张[Home]。

"《"按钮:上一张[Up/PgUp]。

"》"按钮:下一张[Down/PgDn]。

"┨"按钮:最后一张[End]。

"+"按钮:加快索引步长[Ctrl+'+']。

"–"按钮:减慢索引步长[Ctrl+'-']。

"→"按钮:跳转到。

"浏览"按钮:浏览文件夹。

"语法"按钮:指令语法参见"图像处理指令"章节。

"保存"按钮:保存当前图像。

"批处理"按钮:开始批处理图像。

07 视频编解码器

返回

视频路径:当前视频路径。

处理指令:图像处理指令。指令语法参见"图像处理指令"章节。

"☆"按钮:弹出快捷菜单[F12]。

快捷菜单:打开视频;浏览文件夹;后退播放;前进播放;停止播放;加快速度;减慢速度;设为起始帧;设为终止帧;第一帧;前一帧;后一帧;最后一帧;保存当前图像;保存图像序列;保存视频片段;图像合成视频。

"《"按钮:后退播放[F2]。

"》"按钮:前进播放[F3]。

"◎"按钮:停止播放[F4]。

"+"按钮:加快速度[F5]。

"–"按钮:减慢速度[F6]。

"┠"按钮:设为起始帧[F7]。

"┨"按钮:设为终止帧[F8]。

播放进度:播放进度[Up/PgUp:前一帧;Down/PgDn:后一帧]。

"打开"按钮:打开视频[Ctrl+O]。

"浏览"按钮:浏览文件夹[Ctrl+B]。

"语法"按钮:指令语法参见"图像处理指令"章节。

帧率:默认25帧。

比特率:默认1600000。

"编码"按钮:开始视频编码。

"停止"编码:停止视频编码。

08 其它辅助工具

返回

建议正、负样本使用不同的简化参数分开简化后再训练神经网络。

09 高级参数配置

返回

神经网络特征向量维度、多GPU+多CPU联合训练等更多参数定制,须要通过"高级参数配置"实现。

10 工业机器视觉

返回

10.00 视觉检测

 

页索引:当前页索引。

行数:每页分行数。

列数:每页分列数。

"☆"按钮:弹出快捷菜单[F12]。

弹出菜单:切换用户;工作状态;设置;抓取一帧;显示;控制;查看;开机运行。

切换用户:开发者;使用者。

工作状态:步骤1:调试相机;步骤2:采集样本;步骤3:在线检测。

设置:基本参数;相机参数;检测参数;纠偏参数。

显示:相机描述;帧输出串。

控制:保存原始图像;保存检测目标;保存一级警报;保存二级警报;保存警报区域;保存特征向量;播放警报声音;忽略相机错误;忽略未检测到;同步相机帧率;自动启动相机;语音报读输出;出现警报停机;设备启停轮询。

保存一级警报:从不保存;保存首次,保存所有。

保存二级警报:从不保存;保存首次,保存所有。

保存特征向量:从不保存;总是保存,警报保存。

语音报读输出:从不报读;警报报读;总是报读。

查看:原始图像;检测目标;一级警报;二级警报;一级历史警报;二级历史警报;忽略列表。

"R"按钮:反馈日志。

"┠"按钮:第一页[Home]。

"《"按钮:上一页[Up/PgUp]。

"》"按钮:下一页[Down/PgDn]。

"┨"按钮:最后一页[End]。

"→"按钮:跳转到。

"修改"按钮:修改行列数。

"启动"按钮:启动相机[F3]。

"停止"按钮:停止相机[F4]。

"解除"按钮:解除警报[F5:解除警报;F6:测试警报]。

"排查"按钮:人工排查[F11]。

 

10.01 基本参数

 

运行目录时间:单位:毫秒\n该值建议取2个运动周期。

结束采样时间:单位:毫秒\n该值建议取1个运动周期。

解除警报时间:单位:毫秒\n该值建议取1个运动周期。

采样随机曝光时间步长:单位:帧。

采样最小曝光时间:单位:微秒。

采样最大曝光时间:单位:微秒。

采样随机增益步长:单位:帧。

采样最小增益:1-32。

采样最大增益:1-32。

采样画图步长:单位:帧。

非采样画图步长:单位:帧。

警报维持步长:单位:帧。

延迟准备时间:单位:毫秒。

相机抓图超时:单位:毫秒。

串口通信等待:单位:毫秒。

采样内存级别:物理内存不足时,该值建议取0。

调试相机基准框:格式:左,上,右,下\n每个取值均为[0,1]的相对位置\n例如:0,0,1,1。

相机ROI区域:格式:左,上,右,下\n每个取值均为[0,1]的相对位置\n例如:0,0,1,1\n相机启动后不可改。

相机曝光时间:单位:微秒\n该值等于0时,启用自动曝光。

最大抓图帧率:单位:帧/秒\nF7:暂停;F8:帧率为1;F9:最大帧率\nCtrl+'+':加快帧率;Ctrl+'-':减慢帧率。

实际抓图帧率:单位:帧/秒\n只读不可改。

像翻转模式:0:不翻转;1:初始图像水平翻转;2:初始图像垂直翻转;\n4:测量图像水平翻转;8:测量图像垂直翻转。

 

10.02 相机参数

 

Binning:0:Off;1:X;2:Y;3:XY\n相机启动后不可改。

Decimation:0:Off;1:X;2:Y;3:XY\n相机启动后不可改。

PixelFormat:17301505:Mono8;17301512:BayGR8;17301513:BayRG8;17301514:BayGB8;17301515:BayBG8;34603058:YUV422_8;35127317:BGR8;
35651607:BGRA8\n相机启动后不可改。

AcquisitionMode:0:Continuous;1:SingleFrame;2:MutiFrame。

AcquisitionFrameCount:1-255。

AcquisitionFrameRate:1-2000 Hz。

AcquisitionFrameRateEnable:0:False;1:True。

TriggerSelector:0:AcquisitionStart;1:FrameStart。

TriggerMode:0:Off;1:On。

TriggerSource:0:Software;1:Line0;2:Line1;3:Line2。

TriggerActivation:0:RisingEdge;1:FallingEdge;2:TriggerWidth。

TriggerDelay:0-1000000 us。

LineSelector:0:Line0;1:Line1;2:Line2。

LineMode:0:Input;1:Output。

LineInverter:0:False;1:True。

LineDebouncerTimeAbs:0-1000000 us。

GainRaw:1-32。

BlackLevelAuto:0:Off;1:Once;2:Continuous。

BlackLevel:0-255。

BalanceWhiteAuto:0:Off;1:Once;2:Continuous。

BalanceRatioR:0-15。

BalanceRatioG:0-15。

BalanceRatioB:0-15。

Gamma:0-3.99998。

Brightness:0-100。

Contrast:0-100。

 

10.03 检测参数

 

检测器一级/二级警报模式:-1:从不警报;0:目标得分不小于阀值时警报;1:目标得分小于阀值时警报;\n2:目标得分小于阀值但大于0时警报;3:目标个数不小于阀值时警报;\n4:目标个数小于阀值时警报;5:目标个数小于阀值但大于0时警报;\n6:目标个数不等于阀值时警报;7:目标个数等于阀值时警报; 99:总是警报。

检测器一级/二级警报阀值:取值范围:[0,1]。

比对器一级/二级警报模式:-1:从不警报;0:目标得分不小于阀值时警报;1:目标得分小于阀值时警报;\n2:目标得分小于阀值但大于0时警报;3:目标个数不小于阀值时警报;\n4:目标个数小于阀值时警报;5:目标个数小于阀值但大于0时警报;\n6:目标个数不等于阀值时警报;7:目标个数等于阀值时警报; 99:总是警报。

比对器一级/二级警报阀值:取值范围:[0,1]。

匹配器一级/二级警报模式:-1:从不警报;0:匹配输出串不小于关键字串时警报;1:匹配输出串小于关键字串时警报;\n2:匹配输出串不等于关键字串时警报;3:匹配输出串等于关键字串时警报;\n4:匹配输出串不包含关键字串时警报;5:匹配输出串包含关键字串时警报;\n6:匹配输出子串1不小于子串2时警报;7:匹配输出子串1小于子串2时警报;\n8:匹配输出子串1不等于子串2时警报;9:匹配输出子串1等于子串2时警报; 99:总是警报。

匹配器一级/二级警报关键字串:关键字串。

匹配器一级/二级警报子串位置11:子串1起始位置。

匹配器一级/二级警报子串位置12:子串1终止位置。

匹配器一级/二级警报子串位置21:子串2起始位置。

匹配器一级/二级警报子串位置22:子串2终止位置。

识别器一级/二级警报模式:-1:从不警报;0:识别输出串不小于关键字串时警报;1:识别输出串小于关键字串时警报;\n2:识别输出串不等于关键字串时警报;3:识别输出串等于关键字串时警报;\n4:识别输出串不包含关键字串时警报;5:识别输出串包含关键字串时警报;\n6:识别输出子串1不小于子串2时警报;7:识别输出子串1小于子串2时警报;\n8:识别输出子串1不等于子串2时警报;9:识别输出子串1等于子串2时警报; 99:总是警报。

识别器一级/二级警报关键字串:关键字串。

识别器一级/二级警报子串位置11:子串1起始位置。

识别器一级/二级警报子串位置12:子串1终止位置。

识别器一级/二级警报子串位置21:子串2起始位置。

识别器一级/二级警报子串位置22:子串2终止位置。

一级/二级警报阀值(灵敏度):格式:Nf,Nh,Na,Di,Dx,Dy,Nx,Ny,Sl,Sh\n例如:1,1,1,1,1,1,1,1,0,1。

 

10.04 纠偏参数

 

左微调:单位:毫米。

右微调:单位:毫米。

针距:单位:毫米。

速度:单位:转/分钟。

11 版权声明和免责声明

返回

11.01 版权声明

 

1)QWGDR为李瑞鑫个人使用标准C++自主开发的通用检测与识别软件,作者李瑞鑫本人独立且唯一享有该软件的一切权利。

2)QWGDR开发过程中使用到三个开源解码库:ffmpeg、jpeglib、libpng。

3)QWGDR运行过程中依赖于一个开源解码库:ffmpeg。

4)QWGDR使用者(包含个人、法人或其它组织),未经作者李瑞鑫授权许可,不得将QWGDR用于盈利性商业用途。

 

11.02 免责声明

 

1)所有关于QWGDR的性能指标数据,均是基于测试集的统计结果,仅供使用者参考,作者李瑞鑫对此不做承诺保证。

2)作者李瑞鑫不承诺修复软件BUG、升级软件功能、发布新版软件等具体的时间节点和期望指标。

3)作者李瑞鑫对使用QWGDR直接或间接产生的一切风险和损失不负法律和赔偿责任。

4)如不同意上述任一条款,请立即停止使用QWGDR;如继续使用QWGDR,视为完全同意上述所有条款。

12 图像处理指令

返回

QWGDR软件已将常用图像处理算法封装成处理指令集。各条指令的调用语法说明如下:

 

12.00 书写规则

 

图像处理指令的书写规则:

1)指令名称遵循严格大小写区分;

2)所有的字符均为英文半角字符;

3)不得出现空格等其它非法字符;

4)每条指令以分隔符"|"结束。

 

12.01 图像保存

 

图像保存:ToFile(szFullPath)

 

ToFile目前支持jpg、bmp两种格式的图像文件保存。

参数szFullPath为待保存图像文件的完整路径,不区分大小写。

 

调用示例:

ToFile(f:\work\test.jpg)|

ToFile(f:\work\test.bmp)|

 

12.02 图像转换

 

转换为多通道:ToImageNC(nChannel/*1,2,3,4*/)

转换为单通道:ToImage1C(bFactor/*0.114*/,gFactor/*0.587*/,rFactor/*0.299*/,aFactor/*0*/)

转换为YUV:ToImageYUV()

转换为RGB:ToImageRGB()

转换为YX:ToImageYX()

转换为GS:ToImageGS(fAlphaG/*0.17*/)

转换为GYX:ToImageGYX(fAlphaG/*0.25*/)

转换为LYX:ToImageLYX()

转换为VUYX:ToImageVUYX()

SG转换为GS:SGToGS()

XRGB转换为XBRG:XRGBToXBRG()

XRGB转换为XGBR:XRGBToXGBR()

XRGB转换为XRBG:XRGBToXRBG()

XRGB转换为XGRB:XRGBToXGRB()

XRGB转换为XBGR:XRGBToXBGR()

 

参数nChannel为通道数,取值[1,4]之间。

参数bFactor/gFactor/rFactor/aFactor为蓝/绿/红/透明四个颜色分量的加权因子,默认分别为0.114/0.587/0.299/0。

参数fAlphaG为灰度分量加权因子。

 

调用示例:

ToImageNC(3)|

ToImage1C(0.114,0.587,0.299,0)|

ToImageYUV()|

ToImageRGB()|

ToImageYX()|

ToImageGS(0.17)|

ToImageGYX(0.25)|

ToImageLYX()|

ToImageVUYX()|

SGToGS()|

XRGBToXBRG()|

XRGBToXGBR()|

XRGBToXRBG()|

XRGBToXGRB()|

XRGBToXBGR()|

ToImageNC(2)|

ToImageNC(1)|

 

12.03 颜色取反

 

取反:Negative(bOnlyGray/*0,1*/)

区域内部取反:NegativeInner(nRow1,nRow2,nCol1,nCol2)

区域外部取反:NegativeOuter(nRow1,nRow2,nCol1,nCol2)

 

参数bOnlyGray为是否只针对灰度图像取反,取值0或1,默认为0,即对灰度图像和非灰度图像都取反。

参数nRow1/nRow2/nCol1/nCol2为图像区域的最小行/最大行/最小列/最大列,从0开始计数。

 

调用示例:

Negative(0)|

NegativeInner(128,256,64,128)|

NegativeOuter(128,256,64,128)|

 

12.04 颜色重置

 

重置内部:ResetInner(bColor,gColor,rColor,aColor,nRow1,nRow2,nCol1,nCol2)

重置外部:ResetOuter(bColor,gColor,rColor,aColor,nRow1,nRow2,nCol1,nCol2)

 

参数bColor/gColor/rColor/aColor为待重置的蓝/绿/红/透明四个颜色分量,8位图像的后三个分量为0,24位图像的最后一个分量为0。

参数nRow1/nRow2/nCol1/nCol2为图像区域的最小行/最大行/最小列/最大列,从0开始计数。

 

调用示例:

ResetInner(0,0,0,0,128,256,64,128)|

ResetOuter(0,0,0,0,128,256,64,128)|

 

12.05 颜色修改

 

修改内部:AlterInner(bOldColor,gOldColor,rOldColor,aOldColor,bNewColor,gNewColor,rNewColor,aNewColor,nRow1,nRow2,nCol1,nCol2)

修改外部:AlterOuter(bOldColor,gOldColor,rOldColor,aOldColor,bNewColor,gNewColor,rNewColor,aNewColor,nRow1,nRow2,nCol1,nCol2)

修改背景:AlterBkgnd(bOldColor,gOldColor,rOldColor,aOldColor,bNewColor,gNewColor,rNewColor,aNewColor)

 

参数bOldColor/gOldColor/rOldColor/aOldColor为待修改旧的蓝/绿/红/透明四个颜色分量,8位图像的后三个分量为0,24位图像的最后一个分量为0。

参数bNewColor/gNewColor/rNewColor/aNewColor为修改后新的蓝/绿/红/透明四个颜色分量,8位图像的后三个分量为0,24位图像的最后一个分量为0。

参数nRow1/nRow2/nCol1/nCol2为图像区域的最小行/最大行/最小列/最大列,从0开始计数。

 

调用示例:

AlterInner(0,0,0,0,0,0,0,255,128,256,64,128)|

AlterOuter(0,0,0,0,0,0,0,255,128,256,64,128)|

AlterBkgnd(0,0,0,0,0,0,0,255)|

 

12.06 图像裁剪

 

按指令裁剪:ClipC(strCommands/* |:\ (:< ):> ,:/ */,bMinBkgndColor,gMinBkgndColor,rMinBkgndColor,aMinBkgndColor,bMaxBkgndColor,
gMaxBkgndColor,rMaxBkgndColor,aMaxBkgndColor,dnLeft,dnTop,dnRight,dnBottom)

按背景裁剪:ClipB(bMinBkgndColor,gMinBkgndColor,rMinBkgndColor,aMinBkgndColor,bMaxBkgndColor,gMaxBkgndColor,rMaxBkgndColor,
aMaxBkgndColor,dnLeft,dnTop,dnRight,dnBottom)

按相对区域裁剪:ClipR(fLeft/*0-1*/,fTop/*0-1*/,fRight/*0-1*/,fBottom/*0-1*/)

按最大尺寸裁剪:ClipM(nMaxHeight/*0*/,nMaxWidth/*0*/)

按绝对区域裁剪:Clip(nRow1,nRow2,nCol1,nCol2)

 

参数strCommands为图像裁剪之前的处理指令,这里由于是嵌套指令,"|"用"\"替代,"("用"<"替代,")"用">"替代,","用"/"替代。

参数bMinBkgndColor/gMinBkgndColor/rMinBkgndColor/aMinBkgndColor为最小背景的蓝/绿/红/透明四个颜色分量。

参数bMaxBkgndColor/gMaxBkgndColor/rMaxBkgndColor/aMaxBkgndColor为最大背景的蓝/绿/红/透明四个颜色分量。

参数dnLeft/dnTop/dnRight/dnBottom为去除背景后向左/上/右/下四个方向扩展保留像素个数。

参数dfLeft/dfTop/dfRight/dfBottom为相对图像区域,每个取值均在[0,1]之间。

参数nMaxHeight/nMaxWidth为最大高度/宽度,超出尺寸即被直接裁剪,未超出尺寸不做操作。

参数nRow1/nRow2/nCol1/nCol2为图像区域的最小行/最大行/最小列/最大列,从0开始计数。

 

调用示例:

ClipC(ToImageNC<1>\Scale<0.5/0.5/1>\FilterMid<>\Sobel<255/0/1/0>\ThrsholdN<0/16/0/255>\Corrupt<1>\Dilate<1>\Contour<50>\
Scale<2/2/1>\,0,0,0,0,0,0,0,0,0,0,0,0)|

ClipB(0,0,0,0,16,16,16,16,2,2,2,2)|

ClipR(0.25,0.25,0.75,0.75)|

ClipM(1024,1024)|

Clip(128,256,64,128)|

 

12.07 图像扩展

 

扩展一个像素:Extend1()

相对像素扩展:ExtendR(dlWidth/*>=0*/,dtHeight/*>=0*/,drWidth/*>=0*/,dbHeight/*>=0*/,nlFill/*>=0*/,ntFill/*>=0*/,
nrFill/*>=0*/,nbFill/*>=0*/)

绝对像素扩展:Extend(dlWidth/*>=0*/,dtHeight/*>=0*/,drWidth/*>=0*/,dbHeight/*>=0*/,nlFill/*>=0*/,ntFill/*>=0*/,
nrFill/*>=0*/,nbFill/*>=0*/)

 

参数dlWidth/dtHeight/drWidth/dbHeight为向左/上/右/下四个方向扩展的相对/绝对像素个数。

参数nlFill/ntFill/nrFill/nbFill为向左/上/右/下四个方向扩展填充的绝对像素个数,取值要求不小于0。

 

调用示例:

Extend1()|

ExtendR(0.125,0.125,0.125,0.125,8,8,8,8)|

Extend(128,128,128,128,8,8,8,8)|

ExtendR(0.125,0.125,0.125,0.125,0,0,0,0)|

Extend(128,128,128,128,0,0,0,0)|

 

12.08 图像缩进

 

相对像素缩进:IndentR(dlWidth/*>=0*/,dtHeight/*>=0*/,drWidth/*>=0*/,dbHeight/*>=0*/)

绝对像素缩进:Indent(dlWidth/*>=0*/,dtHeight/*>=0*/,drWidth/*>=0*/,dbHeight/*>=0*/)

 

参数dlWidth/dtHeight/drWidth/dbHeight为向左/上/右/下四个方向扩展的相对/绝对像素个数。

 

调用示例:

IndentR(0.125,0.125,0.125,0.125)|

Indent (128,128,128,128)|

IndentR(0.125,0.125,0.125,0.125)|

Indent(128,128,128,128)|

 

12.09 图像缩放

 

限制尺寸:Limit(nMinHeight,nMaxHeight,nMinWidth,nMaxWidth,nMode/*-1,0,1*/,nSampler/*0-4*/)

按比例缩放:Scale(xScale/*>0*/,yScale/*>0*/,nSampler/*0-4*/)

规范化尺寸:Normalize(nHeight,nWidth,nSampler/*0-4*/)

快速规范化尺寸:NormalizeQ(nHeight,nWidth)

 

参数nMinHeight/nMaxHeight/nMinWidth/nMaxWidth为限制图像的最小高度/最大高度/最小宽度/最大宽度。

参数nMode为缩放模式,取值-1/0/1时,分别按xy比例取小者/xy比例分开/xy比例取大者缩放。

参数nSampler为采样器,取值0/1/2/3/4时,分别为最邻近插值/双线性插值/双三次插值/特征最邻近插值/特征双线性插值采样器。

参数xScale/yScale为xy方向的缩放比例。

参数nHeight/nWidth为缩放后的图像高度/宽度。

 

调用示例:

Limit(16,2048,16,2048,-1,0)|

Scale(0.5,0.5,1)|

Normalize(1024,1024,1)|

NormalizeQ(1024,1024)|

 

12.10 图像旋转

 

图像旋转:Rotate(fAngle,nSampler/*0-2*/)

图像快速旋转:RotateQ(fAngle)

 

参数fAngle为旋转角度。

参数nSampler为采样器,取值0/1/2时,分别为最邻近插值/双线性插值/双三次插值采样器。

 

调用示例:

Rotate(45,1)|

RotateQ(45)|

 

12.11 图像变换

 

矩阵变换:Transform(M00,M01,M02,M10,M11,M12,M20,M21,M22,nSampler/*0-2*/)

Lambda变换:TransPow(fLambda,nSampler/*0-2*/)

 

参数M00/M01/M02/M10/M11/M12/M20/M21/M22为3*3变换矩阵。

参数nSampler为采样器,取值0/1/2时,分别为最邻近插值/双线性插值/双三次插值采样器。

参数fLambda为fLambda变形因子。

 

调用示例:

Transform(0.5,0,0,0,0.5,0,0,0,1,1)|

TransPow(1.05,1)|

 

12.12 图像翻转

 

水平翻转:FlipHorz()

垂直翻转:FlipVert()

 

调用示例:

FlipHorz()|

FlipVert()|

 

12.13 图像拉伸

 

位图拉伸:Stretch()

加亮拉伸:Brighten(fKappa/*1*/,fBias/*0*/)

调整亮度:Adjust(fNewAveGray/*127.5*/)

对数拉伸:Logarithmic()

 

参数fKappa为线性拉伸斜率,默认为1。

参数fBias为线性拉伸截距,默认为0。

参数fNewAveGray为新的平均灰度,默认为127.5。

 

调用示例:

Stretch()|

Brighten(2,0)|

Adjust(100)|

Logarithmic()|

 

12.14 直方图均衡化

 

均衡化:Equalize()

平滑均衡化:EqualizeS(fAlphaF/*0.2,0-1*/)

 

参数fAlphaF为加权系数,取值[0,1]之间,默认为0.2。

 

调用示例:

Equalize()|

EqualizeS(0.2)|

 

12.15 高斯平滑

 

高斯平滑:Gauss(nKappa/*3,>=1*/,fSigma/*2,!=0*/)

快速高斯平滑:GaussQ()

 

参数nKappa,要求不小1,默认为3。

参数fSigma,要求不等于0,默认为2。

 

调用示例:

Gauss(3,2)|

GaussQ()|

 

12.16 图像滤波

中值滤波:FilterMid()

均值滤波:FilterAve()

 

调用示例:

FilterMid()|

FilterAve()|

 

12.17 非极大值抑制

 

非极大值抑制:Suppress()

 

调用示例:

Suppress()|

 

12.18 轮廓提取

 

轮廓提取:Contour(nMinLength)

 

参数nMinLength为轮廓最小线段长度。

 

调用示例:

Contour(8)|

Contour(16)|

 

12.19 梯度增强

 

Robert梯度增强:Robert(fMaxDerivation/*360,>0*/,fAlphaG/*0,0-1*/,fAlphaD/*1,0-1*/,bStretch/*0,1*/)

Prewitt梯度增强:Prewitt(fMaxDerivation/*1080,>0*/,fAlphaG/*0,0-1*/,fAlphaD/*1,0-1*/,bStretch/*0,1*/)

Sobel梯度增强:Sobel(fMaxDerivation/*1440,>0*/,fAlphaG/*0,0-1*/,fAlphaD/*1,0-1*/,bStretch/*0,1*/)

Laplacian梯度增强:Laplacian(fMaxDerivation/*720,>0*/,fAlphaG/*0,0-1*/,fAlphaD/*1,0-1*/,bStretch/*0,1*/)

Feature梯度增强:Feature(fMaxDerivation/*1020,>0*/,fAlphaG/*0,0-1*/,fAlphaD/*1,0-1*/,bStretch/*0,1*/)

 

参数fMaxDerivation为最大导数值,取值要求大于0,Robert/Prewitt/Sobel/Laplacian/Feature默认最大导数值分别为360/1080/1440/720/1020。

参数fAlphaG为灰度值的权重,取值[0,1]之间,默认为0。

参数fAlphaD为导数值的权重,取值[0,1]之间,默认为1。

参数bStretch为是否拉伸到位图,取值0或1,默认为0不拉伸。

 

调用示例:

Robert(360,0,1,0)|

Prewitt(1080,0,1,0)|

Sobel(1440,0,1,0)|

Laplacian(720,0,1,0)|

Feature(1020,0,1,0)|

Robert(255,0,1,0)|

Prewitt(255,0,1,0)|

Sobel(255,0,1,0)|

Laplacian(255,0,1,0)|

Feature(255,0,1,0)|

 

12.20 边缘提取

 

Canny边缘提取:Canny(nKappa/*3,>=1*/,fSigma/*2,!=0*/,sFactorH/*0.618*/,sFactorL/*0*/,nDelta/*2,>0*/,fMinAreaR/*32*/,
fOffsetR/*32*/,fZeroColor/*0*/)

 

参数nKappa,取值要求不小于1,默认为3。

参数fSigma,取值要求不等于0,默认为2。

参数sFactorH,默认为0.618。

参数sFactorL,默认为0。

参数nDelta,取值要求大于0,默认为2。

参数fMinAreaR,默认为32。

参数fOffsetR,默认为32。

参数fZeroColor,默认为0。

 

调用示例:

Canny(3,2,0.618,0,2,32,32,0)|

Canny(3,2,0.889,0.618,2,32,32,0)|

Canny(3,2,0,-0.618,2,32,32,0)|

 

12.21 图像二值化

 

正态双阀值二值化:ThrsholdND(sFactorH/*0.618*/,sFactorL/*0*/,nDelta/*2,>0*/,fMinAreaR/*32*/,fOffsetR/*32*/,
fZeroColor/*0*/,fOneColor/*255*/)

正态阀值二值化:ThrsholdN(sFactor/*0*/,fMinColor/*1*/,fZeroColor/*0*/,fOneColor/*255*/)

固定阀值二值化:ThrsholdB(bBias,gBias,rBias,aBias,fZeroColor/*0*/,fOneColor/*255*/)

范围阀值二值化:ThrsholdR(bBia1s,gBia1s,rBia1s,aBia1s,bBia2s,gBia2s,rBia2s,aBia2s,bInner1/*1,0*/,
fZeroColor/*0*/,fOneColor/*255*/)

 

参数sFactorH为高阀值正态因子,默认为0.618。

参数sFactorL为低阀值正态因子,默认为0。

参数nDelta为连通间距,取值要求大于0,默认为2。

参数fMinAreaR为最小包络区域面积,默认32。

参数fOffsetR为矩形向外扩展像素个数,默认32。

参数fZeroColor为二值图背景颜色,默认为0。

参数fOneColor为二值图前景颜色,默认为255。

参数sFactor为阀值正态因子,默认为0。

参数fMinColor为二值化图前景的最小颜色,默认为1。

参数bBias/gBias/rBias/aBias为阀值的蓝/绿/红/透明四个颜色分量。

 

调用示例:

ThrsholdND(0.618,0,2,32,32,0,255)|

ThrsholdN(0,1,0,255)|

ThrsholdB(16,16,16,16,0,255)|

ThrsholdR(16,16,16,16,240,240,240,240,1,0,255)|

ThrsholdND(0.889,0.618,2,32,32,0,255)|

ThrsholdN(0.618,32,0,255)|

ThrsholdB(32,32,32,32,0,255)|

ThrsholdR(32,32,32,32,224,244,244,244,1,0,255)|

 

12.22 图像去噪声

 

正态双阀值去噪声:DenoiseND(sFactorH/*0.618*/,sFactorL/*0*/,nDelta/*2,>0*/,fMinAreaR/*32*/,fOffsetR/*32*/,
fZeroColor/*0*/)

正态阀值去噪声:DenoiseN(sFactor/*0*/,fMinColor/*1*/,fZeroColor/*0*/)

固定阀值去噪声:DenoiseB(bBias,gBias,rBias,aBias,fZeroColor/*0*/)

范围阀值去噪声:DenoiseR(bBia1s,gBia1s,rBia1s,aBia1s,bBia2s,gBia2s,rBia2s,aBia2s,bInner1/*1,0*/,fZeroColor/*0*/)

 

参数sFactorH为高阀值正态因子,默认为0.618。

参数sFactorL为低阀值正态因子,默认为0。

参数nDelta为连通间距,取值要求大于0,默认为2。

参数fMinAreaR为最小包络区域面积,默认32。

参数fOffsetR为矩形向外扩展像素个数,默认32。

参数fZeroColor为二值图背景颜色,默认为0。

参数fOneColor为二值图前景颜色,默认为255。

参数sFactor为阀值正态因子,默认为0。

参数fMinColor为二值化图前景的最小颜色,默认为1。

参数bBias/gBias/rBias/aBias为阀值的蓝/绿/红/透明四个颜色分量。

 

调用示例:

DenoiseND(0.618,0,2,32,32,0)|

DenoiseN(0,1,0)|

DenoiseB(16,16,16,16,0)|

DenoiseR(16,16,16,16,240,240,240,240,1,0)|

DenoiseND(0.889,0.618,2,32,32,0)|

DenoiseN(0.618,32,0)|

DenoiseB(32,32,32,32,0)|

DenoiseR(32,32,32,32,224,244,244,244,1,0)|

 

12.23 颜色截断

 

正态截断:InterceptN(sMaxFactor/*1.618*/)

阀值截断:InterceptB(bMaxColor,gMaxColor,rMaxColor,aMaxColor)

 

参数sMaxFactor为正态因子,默认为1.618。

参数bMaxColor/gMaxColor/rMaxColor/aMaxColor为最大颜色的蓝/绿/红/透明四个颜色分量。

 

调用示例:

InterceptN(1.618)|

InterceptB(255,255,255,255,255)|

 

12.24 膨胀腐蚀

 

膨胀:Dilate(nCount)

腐蚀:Corrupt(nCount)

 

参数nCount为连续膨胀/腐蚀次数。

 

调用示例:

Dilate(1)|

Corrupt(1)|

Dilate(5)|

Corrupt(5)|

 

12.25 边界计算

 

边界:Border()

 

调用示例:

Border()|

 

12.26 积分图像

 

积分图像:Integral()

 

调用示例:

Integral()|

 

12.27 区域生长

 

区域生长:RegionGrowing(fMaxDistC/*32*/,fMaxDist1/*4*/)

 

参数fMaxDistC默认为32。

参数fMaxDist1默认为4。

 

调用示例:

RegionGrowing(32,4)|

 

12.28 图像加载

 

图像加载:FromFile(szFullPath)

 

FromFile目前支持jpg、bmp、png三种格式的图像文件加载。

参数szFullPath为待加载图像文件的完整路径,不区分大小写。

 

调用示例:

FromFile(F:\QWFramework_pro\demo\blood_coord\coordinate.bmp)|

FromFile(f:\work\test.jpg)|

 

12.29 平均图像

 

平均图像:AveImage(<strImageDir>,strCommands/* |:\ (:< ):> ,:/ */,nChannelN/*1,2,3,4*/,nHeightN,nWidthN,
nSamplerN/*1,0-4*/,bStretch/*1,0*/)

 

参数strImageDir为图像目录,不区分大小写。

参数strCommands为计算平均图像之前各图像的处理指令,这里由于是嵌套指令,"|"用"\"替代,"("用"<"替代,")"用">"替代,","用"/"替代。

参数nChannelN为平均图像的通道数,取值[1,4]之间。

参数nHeightN为平均图像规范化高度。

参数nWidthN为平均图像规范化宽度。

参数nSamplerN为采样器,默认为1即双线性插值采样器。

参数bStretch为是否拉伸位图,取值1或0,默认为1即拉伸位图。

 

调用示例:

AveImage(f:\work\test_ave_image\,0\,3,1024,1024,1)|

AveImage(f:\work\test_ave_image\,ToImageLYX<>\,3,1024,1024,1)|

 

12.30 通道链接

 

通道链接:LinkOC()

 

LinkOC将当前操作图像和缓冲区图像按通道链接在一起,扩大图像通道数,因此当前操作图像和缓冲区图像的通道数总和不得超过4。

 

调用示例:

LinkOC()|

 

12.31 颜色运算

 

颜色加上:Add(bColor,gColor,rColor,aColor)

颜色减去:Subtract(bColor,gColor,rColor,aColor)

颜色乘以:Multiply(bColor,gColor,rColor,aColor)

颜色除以:Divide(bColor,gColor,rColor,aColor)

 

参数bColor/gColor/rColor/aColor为将被加上/减去/乘以/除以给定颜色的蓝/绿/红/透明四个颜色分量。

 

调用示例:

Add(16,16,16,16)|

Subtract(16,16,16,16)|

Multiply(255,255,255,255)|

Divide(255,255,255,255)|

 

12.32 图像运算

 

图像相加:AddI(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bBkgndColor2,gBkgndColor2,
rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像相减:SubtractI(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bBkgndColor2,gBkgndColor2,
rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像差异:DifferI(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bBkgndColor2,gBkgndColor2,
rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像相乘:MultiplyI(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bBkgndColor2,gBkgndColor2,
rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像相除:DivideI(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bBkgndColor2,gBkgndColor2,
rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像拷贝:Blit(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bBkgndColor2,gBkgndColor2,
rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像混合:Blend(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,fAlpha/*0-1*/,bBkgndColor2,
gBkgndColor2,rBkgndColor2,aBkgndColor2,nSampler/*0-4*/)

图像并集:BoolUnion(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bDstColor2,gDstColor2,rDstColor2,
aDstColor2,nClrOuterO/*0,1*/,nSampler/*0-4*/)
图像交集:BoolIntersect(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bDstColor2,gDstColor2,rDstColor2,
aDstColor2,nClrOuterO/*0,1*/,nSampler/*0-4*/)

图像差集:BoolSubtract(fLeft1,fTop1,fRight1,fBottom1,fLeft2,fTop2,fRight2,fBottom2,bDstColor2,gDstColor2,rDstColor2,
aDstColor2,nClrOuterO/*0,1*/,nSampler/*0-4*/)

图像掩膜:Mask(bZeroColorM/*0*/,gZeroColorM/*0*/,rZeroColorM/*0*/,aZeroColorM/*0*/,bZeroColorO/*0*/,gZeroColorO/*0*/,
rZeroColorO/*0*/,aZeroColorO/*0*/,nChlAlone/*0,1*/,nSampler/*0-4*/)

 

参数fLeft1/fTop1/fRight1/fBottom1为当前操作图像区域的左/上/右/下位置。

参数fLeft2/fTop2/fRight2/fBottom2为缓冲区图像区域的左/上/右/下位置。

参数bBkgndColor2/gBkgndColor2/rBkgndColor2/aBkgndColor2为缓冲区图像背景颜色的蓝/绿/红/透明四个颜色分量。

参数nSampler为采样器,取值0/1/2/3/4时,分别为最邻近插值/双线性插值/双三次插值/特征最邻近插值/特征双线性插值采样器。

参数fAlpha为混合因子,取值[0,1]之间。

参数bDstColor2/gDstColor2/rDstColor2/aDstColor2为计算并/交/差集的目标颜色的蓝/绿/红/透明四个颜色分量。

参数nClrOuterO为是否清除当前操作图像区域外的颜色,取值0或1,默认为0即不清除。

参数bZeroColorM/gZeroColorM/rZeroColorM/aZeroColorM为掩膜图像的背景颜色的蓝/绿/红/透明四个颜色分量。

参数bZeroColorO/gZeroColorO/rZeroColorO/aZeroColorO为当前操作图像被掩膜的清零颜色的蓝/绿/红/透明四个颜色分量。

参数nChlAlone为是否各个通道分开掩膜,取值0或1,默认0即不要各个通道分开掩膜。

 

调用示例:

AddI(0,0,1023,1023,0,0,1023,1023,0,0,0,0,1)|

SubtractI(0,0,1023,1023,0,0,1023,1023,0,0,0,0,1)|

DifferI(0,0,1023,1023,0,0,1023,1023,0,0,0,0,1)|

MultiplyI(0,0,1023,1023,0,0,1023,1023,0,0,0,0,1)|

DivideI(0,0,1023,1023,0,0,1023,1023,0,0,0,0,1)|

Blit(256,256,768,768,256,256,768,768,0,0,0,0,1)|

Blend (256,256,768,768,256,256,768,768,0.5,0,0,0,0,1)|

BoolUnion(256,256,768,768,256,256,768,768,255,255,255,255,0,1)|

BoolIntersect(256,256,768,768,256,256,768,768,255,255,255,255,0,1)|

BoolSubtract(256,256,768,768,256,256,768,768,255,255,255,255,0,1)|

Mask(0,0,0,0,0,0,0,0,0,0)|

 

12.33 缓存函数

 

交换当前操作图像和掩膜图像:SwapOM()

交换当前操作图像和缓冲图像:SwapOC()

交换掩膜图像和缓冲图像:SwapMC()

掩膜图像拷贝给当前操作图像:CopyOM()

缓冲图像拷贝给当前操作图像:CopyOC()

当前操作图像拷贝给掩膜图像:CopyMO()

缓冲图像拷贝给掩膜图像:CopyMC()

当前操作图像拷贝给缓冲图像:CopyCO()

掩膜图像拷贝给缓冲图像:CopyCM()

 

调用示例:

SwapOM()|

SwapOC()|

SwapMC()|

CopyOM()|

CopyOC()|

CopyMO()|

CopyMC()|

CopyCO()|

CopyCM()|

 

12.34 绘制函数

 

绘制线段:DrawLine(bDstColor,gDstColor,rDstColor,aDstColor,x1,y1,x2,y2,fLineWidth/*1*/)

绘制四边形:DrawRect(bDstColor,gDstColor,rDstColor,aDstColor,xlt,ylt,xrt,yrt,xrb,yrb,xlb,ylb,fLineWidth/*1*/)

 

参数bDstColor/gDstColor/rDstColor/aDstColor为线段/四边形颜色的蓝/绿/红/透明四个颜色分量。

参数x1/y1为线段起点的x/y坐标位置,以像素为单位。

参数x2/y2为线段终点的x/y坐标位置,以像素为单位。

参数fLineWidth为线宽,以像素为单位,默认为1个像素。

参数xlt/ylt为四边形左上角点的x/y坐标位置,以像素为单位。

参数xrt/yrt为四边形右上角点的x/y坐标位置,以像素为单位。

参数xrb/yrb为四边形右下角点的x/y坐标位置,以像素为单位。

参数xlb/ylb为四边形左下角点的x/y坐标位置,以像素为单位。

 

调用示例:

DrawLine(0,0,255,0,0,0,1023,1023,1)|

DrawRect(0,0,255,0,0,0,1023,0,1023,1023,0,1023,1)|

 

12.35 设置函数

 

启用CUDA:EnableCUDA(bEnable/*1,0*/)

设置图像质量:SetQuality(nQuality/*95,0-100*/)

设置得分系数:SetAlphaSs(fAlphaSS/*0*/,fAlphaSA/*0*/,fAlphaSC/*0*/)

设置反转大向量:SetInvBigVector(bInvBigVector/*0,1*/)

设置规范化通道向量:SetNormalizeChl(bNormalizeChl/*1,0*/)

设置评分系数:SetScoSRES(bSigErr/*0,1*/,bRevErr/*0,1*/,fErrPow/*1*/,fSimPow/*0*/)

 

这六个设置函数,只能在内核的图像预处理指令里设置,在其它地方设置均无效。

通常情况下,不必调用这六个设置函数。

 

调用示例:

EnableCUDA(1)|

SetQuality(95)|

SetAlphaSs(0,0,0)|

SetInvBigVector(0)|

SetNormalizeChl(1)|

SetScoSRES(0,0,1,0)|

版权所有 2005-2024 武汉求微科技有限公司 鄂ICP备2023028623号-1
网站设计与维护:李瑞鑫 手机:+8613554173709(微信同号)  邮箱:2822205767@qq.com
地址:武汉东湖新技术开发区高新大道778号奥山创意街区项目4号地块栋6层办公04室(自贸区武汉片区) 邮编:430000