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)| |