1.读取图片
dev_update_window (‘off’)
dev_close_window ()
dev_open_window (0, 0, 728, 512, ‘black’, WindowID)
read_image (Bond, ‘die/die_03’)
dev_display (Bond)
2彩色图转灰度图
decompose3 (Image, Red, Green, Blue) *是将此3个单色图转换为HSV色差空间中的图
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, ‘hsv’)`.
3进行灰度图像腐蚀操作
gray_erosion_shape (Image, ImageMin, 15, 15, ‘rectangle’)
4.阈值分割
threshold (Blue, Regions, 23, 253)
5.连通区域
connection (Regions, ConnectedRegions)
6筛选区域
select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 4500, 7000)
7.ROI
gen_region_runs (ROI_0, [70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108], [178,176,175,173,172,171,169,168,166,165,163,162,162,163,163,163,163,163,163,164,164,164,165,165,165,166,166,168,169,170,171,172,172,174,176,178,180,187,189], [253,257,259,260,262,263,264,265,265,266,266,266,266,266,267,268,268,269,271,271,270,269,268,268,266,266,265,265,265,265,264,264,258,254,255,254,250,248,239])
8.裁剪
reduce_domain (Blue, ROI_0, ImageReduced)
9.find_shape_model(Image, //搜索图像
ModelID, //模板句柄
AngleStart, // 搜索时的起始角度
AngleExtent, //搜索时的角度范围,必须与创建模板时的有交集
MinScore, //最小匹配值,输出的匹配的得分Score 大于该值
NumMatches, //定义要输出的匹配的最大个数
MaxOverlap, //当找到的目标存在重叠时,且重叠大于该值时选择一个好的输出
SubPixel, //计算精度的设置,五种模式,多选2,3
NumLevels, //搜索时金字塔的层数
Greediness : //贪婪度,搜索启发式,一般都设为0.8,越高速度快,容易出现找不到的情况
Row,Column, Angle, Score) //输出匹配位置的行和列坐标、角度、得分。
10. 准备一个形状模型来匹配
create_shape_model (ImageReduced, ‘auto’,0, rad(360), ‘auto’, ‘auto’, ‘use_polarity’, ‘auto’, ‘auto’, ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)
11.数组求和
tuple_length(Row,Length)
12.为每个输入点(行、列)生成交叉形状的XLD轮廓。从概念上讲,轮廓由两条长度大小的线组成,这些线正好在输入点相交。它们的方位由角度决定。十字架以十字架的形式返回。如果要处理多个点,则必须将它们的坐标作为元组传递。
gen_cross_contour_xld( : Cross : Row, Col, Size, Angle)
参数列表:
Cross(out):生成XLD轮廓
Row(in):输入点集的行坐标
Col(in):输入点集的列坐标,Col元组的个数与Row元组的个数相同
Size(in):十字形长度,长度大于等于0
Angle(in):十字形方向
13.full_domain - 将图像的域(ROI)扩大到最大。算子full_domain输入一个以图像边缘长度为矩形的新定义域。 这意味着在进一步的操作中图像矩阵包含所有像素。 因此,通过读取或生成图像来获得相同的定义域。 矩阵的大小没有改变。
Image (input_object) (multichannel-)image(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
输入图像。
ImageFull (output_object) image(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
具有最大定义域的图像。