Operation属性
适用
视觉对象:ImageOp
说明
设定要执行操作的图像。部分操作可以设定Iterations属性的重复次数。
用法
VGet Sequence.Object.Operation, var
VSet Sequence.Object.Operation, value
- Sequence
- 序列名或表示序列名的字符串变量
- Object
- 对象名或表示对象名的字符串变量对象必须存在于指定的序列中。
- var
- 表示属性值的整数变量
- value
- 表示新属性值的整数或表达式
值
- 1-Open
- 视觉常数:VISION_OPERATION_OPEN
- 执行图像形态学的开操作,即先侵蚀(3-Erode)后膨胀(4-Dilate)。收缩(3-Erode)处理可以消除与测试对象为同一色系的小像素组,从而消除噪点、划痕和污垢,重新塑造边缘,增加背景像素。
通过Polarity属性设置检测对象相较于背景的亮度。图像处理前 图像处理后
Iterations: 1
- 2-Close
- 视觉常数:VISION_OPERATION_CLOSE
- 执行图像形态学的闭操作,即先膨胀(4-Dilate)后侵蚀(3-Erode)。膨胀(4-Dilate)处理可以消除与测试对象为相反色系的小像素组,从而消除噪点、划痕和污垢且不会模糊边缘。
通过Polarity属性设置检测对象相较于背景的亮度。图像处理前 图像处理后
Iterations: 1
- 3-Erode
- 视觉常数:VISION_OPERATION_ERODE
- 进行侵蚀处理。以缩小图片边界,从而修正因为照明环境等条件的限制造成对象边界过宽,可以有意识的分离连接对象。该操作可以作为OCR预处理中分离文字的一种手段。
通过Polarity属性设置检测对象相较于背景的亮度。图像处理前 图像处理后
Iterations: 1
- 4-Dilate
- 视觉常数:VISION_OPERATION_DILATE
- 进行膨胀处理。此操作可以放大图片边界,从而修正因为照明环境等条件的限制造成对象边界过窄,可以有意识的连接周围对象。该操作可以作为OCR预处理中,连接呈虚线状态字符的一种手段。
通过Polarity属性设置检测对象相较于背景的亮度。图像处理前 图像处理后
Iterations: 1
- 5-Smooth
- 视觉常数:VISION_OPERATION_SMOOTH
- 进行平滑度处理。由于成像环境和各种设定的限制,造成相邻像素之间的差异值较大、噪音过大时,该操作可以对相邻像素之间的值进行平滑度处理,减小差异。并且可以有效的去除所有杂音。但需要注意的是,边缘的模糊程度会受到Iterations属性设定的影响。
图像处理前 图像处理后
Iterations: 20
- 6-Sharpen1
- 视觉常数:VISION_OPERATION_SHARPEN1
- 进行钝化处理。此操作通过检查垂直、水平、对角线的亮度变化以突出边缘轮廓。可以使边界模糊的图片变得更加清晰。与7-Sharpen2相比,此操作能检测到对角线的亮度变化,所以能更加突出的显示边缘。
图像处理前 图像处理后
Iterations: 1
- 7-Sharpen2
- 视觉常数:VISION_OPERATION_SHARPEN2
- 进行钝化处理。此操作通过检查垂直、水平方向的亮度变化以突出边缘轮廓。可以使边界模糊的图片变得更加清晰。
图像处理前 图像处理后
Iterations: 1
- 8-HorizEdge
- 视觉常数:VISION_OPERATION_HORIZEDGE
- 强调水平边缘轮廓。此操作可以通过垂直方向的亮度差提取边缘。结合使用Blob等,进行水平方向上的刮蹭检查。
如下图所示,右侧水平方向的刮伤被突出显示,而左侧垂直方向的刮伤则没有被突出显示。图像处理前 图像处理后
Iterations: 1
- 9-VertEdge
- 视觉常数:VISION_OPERATION_VERTEDGE
- 强调垂直边缘轮廓。此操作可以通过水平方向的亮度差提取边缘。结合使用Blob等,进行垂直方向上的刮蹭检查。
如下图所示,左侧垂直方向的刮伤被突出显示,而右侧水平方向的刮伤则没有被突出显示。图像处理前 图像处理后
Iterations: 1
- 10-EdgeDetect1
- 视觉常数:VISION_OPERATION_EDGEDETECT1
- 提取边缘轮廓。在当前像素附近施加权重,通过高斯滤波进行平滑度处理以提取边缘轮廓。通过平滑度处理,可以在去除噪音的同时检测出边缘轮廓。可进行所有方向的刮蹭检查。
图像处理前 图像处理后
Iterations: 1
- 11-EdgeDetect2
- 视觉常数:VISION_OPERATION_EDGEDETECT2
- 提取边缘轮廓。在当前像素附近进行加权平均化处理,提取边缘轮廓。通过加权平均处理,可以在去除噪音的同时检测出边缘轮廓。可进行所有方向的刮蹭检查。
图像处理前 图像处理后
Iterations: 1
- 12-LaPlaceEdge1
- 视觉常数:VISION_OPERATION_LAPLACE1
- 强调边缘轮廓。对垂直和水平方向的亮度进行二阶微分,强调边缘轮廓。10-EdgeDetect1和11-EdgeDetect2的用途很相似,但是此处理与亮度的方向无关,而是均匀的凸显边缘。需要注意的是,由于没有进行平滑度处理,所以噪音可能会增加。
图像处理前 图像处理后
Iterations: 1
- 13-LaPlaceEdge2
- 视觉常数:VISION_OPERATION_LAPLACE2
- 强调边缘轮廓。对垂直、水平和对角线方向的亮度进行二阶微分,强调边缘轮廓。相较于12-LaPlaceEdge1还能进行对角线的亮度检测,能更凸显边缘轮廓。
图像处理前 图像处理后
Iterations: 1
- 14-Thin
- 视觉常数:VISION_OPERATION_THIN
- 对图像进行细化操作。和3-Erode的功能类似,但此操作是在保持被检测对象框架的前提下进行细化处理。不会由于Iterations次数而造成对象区域消失或将连接对象分离。
图像处理前 图像处理后
Iterations: 1
- 15-Thicken
- 视觉常数:VISION_OPERATION_THICKEN
- 对图像进行粗化处理。和4-Dilate的功能类似,但此操作是在保持被检测对象框架的前提下进行粗化处理的。由于是在不破化检测对象形状的前提下进行粗化处理的,所以不会造成分离对象相互连接。
图像处理前 图像处理后
Iterations: 1
- 16-Binarize
- 视觉常数:VISION_OPERATION_BINARIZE
- 使用ThresholdLow和ThresholdHigh函数,进行图像二值化处理。利用ThresholdLow和ThresholdHigh设置了被检测对象的亮度范围后,可以只提取出和对象物相同亮度值的区域。去除噪声和其他不需要的区域,可以提高对象识别(Geometric等)的速度和准确性。
图像处理前 图像处理后
- 17-Rotate
- 视觉常数:VISION_OPERATION_ROTATE
- 使用AngleObject或RotationAngle函数旋转图像。如果AngleObject为“Screen”时,旋转角度则由RotationAngle属性确定。除此之外,旋转角度根据RotationAngle属性确定。当角度值为正值时则逆时针旋转。作为OCR和CodeReader的预操作,可以将被检测对象旋转到辨别率高的方向。
图像处理前 图像处理后
RotationAngle: 45
- 18-FlipHoriz
- 视觉常数:VISION_OPERATION_FLIPHORIZ
- 将图像左右翻转。此操作可以将由于印刷或锻造的工序,造成字符和工件形状颠倒时,将其恢复到原始状态。
图像处理前 图像处理后
- 19-FlipVert
- 视觉常数:VISION_OPERATION_FLIPVERT
- 将图像上下翻转。此操作可以将由于印刷或锻造的工序,造成字符和工件形状颠倒时,将其恢复到原始状态。
图像处理前 图像处理后
- 20-FlipBoth
- 视觉常数:VISION_OPERATION_FLIPBOTH
- 将图像上下左右旋转。此操作可以将由于印刷或锻造的工序,造成字符和工件形状颠倒时,将其恢复到原始状态。
图像处理前 图像处理后
- 21-ColorFilter
- 视觉常数:VISION_OPERATION_COLORFILTER
- 筛选使用彩色模型的图像。可提取指定像素值的区域。和16-Binarize不同,此操作可以保持提取出的像素值,并将删除区域(背景)的颜色指定为任意值。灰度图像也可以使用该功能。
图像处理前 图像处理后
背景色:255, 255, 255
筛选颜色:35, 35, 255
公差范围:100
- 22-SubtractAbs
- 视觉常数:VISION_OPERATION_SUBTRACTABS
- 返回ImageBuffer1和ImageBuffer2的绝对差异图像。减去ImageBuffer1和ImageBuffer2的像素值可输出差值。此操作可用于检查同一个相机下采集的所有图像,从而确认工件颜色的变化,或判断涂胶或涂料的情况。ImageBuffer1和ImageBuffer2的设定方法,请参照本手册的相应页面。
ImageBuffer1属性
ImageBuffer2属性ImageBuffer1/ImageBuffer2 绝对差异图像
- 23-Zoom
- 视觉常数:VISION_OPERATION_ZOOM
- 放大或缩小图像。按照指定倍率放大或缩小图像,来校正过大或过小的被检测对象的尺寸。此功能可用于监控时调整图像显示尺寸。
图像处理前 图像处理后
ZoomFactor: 3
- 24-ColorStretch
- 视觉常数:VISION_OPERATION_COLORSTRETCH
- 在MinRGB和MaxRGB范围内拉伸图像中的颜色值。拉伸图像直方图,使MinRGB的值为“0”,MaxRGB的值为“255”,生成高对比度图像。该功能对于校正小对比度的图像非常有效。通过将检测对象的亮度值设定为MinRGB、MaxRGB,可消除噪音提高辨识率。灰度图像也可以使用本功能。
图像处理前 图像处理后
MaxRGB: 202,202,202
MinRGB: 87,87,87
- 25-Shift
- 视觉常数:VISION_OPERATION_SHIFT
- 设置ShiftObject或ShiftX、ShiftY来移动图像。
若将ShiftObject设置为“None”时,位移量将由ShiftX属性和ShiftY属性确定。在其他情况下,则会根据ShiftObject设置的检测位置进行位移。可在差异拍摄时(例如22-SubtractAbs等)用于对齐图像。图像处理前 图像处理后
ShiftX: 100
ShiftY: 100
- 26-DetectFocus
- 视觉常数:VISION_OPERATION_DETECTFOCUS
- 检测图像的对焦等级。当图片边缘模糊,也就是镜头失焦时,FocusValue值会变大。通过确认FocusValue的值可以判断相机和工件之间的距离设定是否合理。
有关相对对焦等级可查阅FocusValue结果中的内容。
FocusValue结果FocusValue: 7.265 FocusValue: 1.196
- 27-BinarizeAdaptive
- 视觉常数:VISION_OPERATION_BINARIZEADAPT
- 根据ThresholdBlockSize和ThresholdLevel的设置,对图像进行二值化处理。和16-Binarize不同的是,阈值针对每个像素进行更改并进行二值化。因此,当目标对象的亮度值在图像中不恒定时,可以用于处理目标对象的区域提取。
图像处理前 图像处理后
默认:1-Open
详细说明
操作设定可进行如下分组:
- 图像形态学
- Open、Close、Erode、Dilate
- 图像形态学使用灰度图像,通过侵蚀、膨胀或两种方式的组合来更改图像。Polarity属性来设置操作的亮度:Dark或Light。例如,在深色背景上处理浅色对象,则需将Polarity属性设为1-DarkOnLight。如果在相同图像将Polarity设为2-LightOnDark,则在执行Erode时,被检测对象的浅色部分会被侵蚀,而深色部分则会膨胀。Iterations属性确定执行操作的次数。
- 图像卷积
- Smooth、Sharpen1、Sharpen2、HorizEdge、VertEdge、EdgeDetect1 EdgeDetect2、LaPlaceEdge1、LaPlaceEdge2、Thin、Thicken
- 图像卷积是通过执行特定的过滤来更改图像。Polarity属性可设置操作Thin和Thicken时的亮度。Iterations属性确定执行操作的次数。
- 图像操作
- Rotate、FlipHoriz、FlipVert、FlipBoth
- 可旋转、翻转、缩放、移动图像。Rotate设置旋转角度,Zoom设置缩放率,Shift设置位移量。
- 二值化阙值设定
- Binarize
- ThresholdLow和ThresholdHigh是确定哪些灰度值为黑色以及哪些值为白色的分界线。阈值之间的所有灰度值为黑色,其他全部为白色。
- BinarizeAdaptive
- 是一种自适应型二值化处理,可自动找到合适的阈值,而无需固定二值化的阈值。使用ThresholdBlockSize和ThresholdLevel未每个像素计算相应的阈值。
- 像素间运算
- SubtractAbs
- 计算设置在ImageBuffer1属性中的图像缓冲区与设置在ImageBuffer2属性中的图像缓冲区之间的差异图像(绝对值)。
- 颜色滤光片
- ColorFilter
- 可以示教需过滤的颜色和背景色。运行时,ImageOp工具确认图像ROI中的各像素颜色。如果像素颜色在一个滤光片颜色的指定容差内,则该像素不改变。否则,像素颜色将变为指定的背景颜色。
- 颜色拉伸
- ColorStretch
- 将MinRGB和MaxRGB之间的RGB值设定为0~255,也可以更改图像的颜色值。此外,KeepRGBRatio属性也影响值的拉伸方法。
- 对焦等级
- DetectFocus
- 检测图像的对焦等级。检测出的对焦等级将成为FocusValue结果的值。
参照
ImageOp 对象, Iterations属性, MinRG属性, MaxRG属性, KeepRGBRatio 属性,ImageBuffer1 属性, ImageBuffer2 属性