变量名 | 类 型 | 静态 | 数组 | 备 注 | 输入 | 多维矩阵类 | | | 灰度化 | 多维矩阵类 | | | 阈值 | 多维矩阵类 | | | 轮廓 | 多维数组点2i类 | | | 最小距离1 | 双精度小数型 | | | 最小距离2 | 双精度小数型 | | | 最小点0 | 点2i类 | | | 最小点1 | 点2i类 | | | i | 整数型 | | | 点 | 点2i类 | | | 最小_点1 | 点2i类 | | | 最小_点2 | 点2i类 | | | j | 整数型 | | | 点2 | 点2i类 | | | 距离 | 双精度小数型 | | | 绘制图 | 多维矩阵类 | | |
输入 = 视觉_图像解码 ( #图片1, 1 )视觉_颜色空间转换 (输入, 灰度化, #颜色_BGR转GRAY, 0 )视觉_高斯滤波 (灰度化, 灰度化, 尺寸2i (3, 3 ), 0, 0, 4 )视觉_阈值 (灰度化, 阈值, 150, 255, #阈值_二进制 )视觉_查找轮廓 (阈值, 轮廓, , #检测_外部, #逼近_任何, )最小距离1 = 10000 计次循环首 (轮廓. 元素尺寸 (2 ), i )点 = 点2i (轮廓. 取点2i类 (2, i ).左边, 轮廓. 取点2i类 (2, i ).顶边 )最小距离2 = 10000 最小_点1 = 点2i (0, 0 )最小_点2 = 点2i (0, 0 )计次循环首 (轮廓. 元素尺寸 (1 ), j )点2 = 点2i (轮廓. 取点2i类 (1, j ).左边, 轮廓. 取点2i类 (1, j ).顶边 )距离 = 视觉_点到点 (点2.左边, 点2.顶边, 点.左边, 点.顶边 )如果真 (距离 < 最小距离2 )最小距离2 = 距离 最小_点1 = 点2 最小_点2 = 点 计次循环尾 ()如果真 (最小距离2 < 最小距离1 )最小距离1 = 最小距离2 最小点0 = 最小_点2 最小点1 = 最小_点1 绘制图 = 输入.克隆 ()视觉_线 (绘制图, 点, 最小_点1, 标量 (0, 255, 0 ), 2, #线类型_线_AA, 0 )视觉_圆 (绘制图, 点, 5, 标量 (255, 0, 255 ), -1, #线类型_线_AA, 0 )视觉_圆 (绘制图, 最小_点1, 5, 标量 (0, 255, 255 ), -1, #线类型_线_AA, 0 )视觉_显示图像 (“小白鼠”, 绘制图 )如果真 (视觉_等待按键 (1 ) = 27 ) 跳出循环 ()计次循环尾 ()视觉_线 (输入, 最小点0, 最小点1, 标量 (0, 255, 0 ), 2, #线类型_线_AA, 0 )视觉_圆 (输入, 最小点0, 3, 标量 (255, 0, 255 ), -1, #线类型_线_AA, 0 )视觉_圆 (输入, 最小点1, 3, 标量 (0, 255, 255 ), -1, #线类型_线_AA, 0 )视觉_放置文本ZH (输入, “最小距离:” + 到文本 (最小距离1 ), 点2i (最小点1.左边, 最小点1.顶边 + 15 ), 标量 (0, 255, 0 ), 40, “微软雅黑”, 假, 假)视觉_显示图像 (“小白鼠”, 输入 ) 视觉_等待按键 (0 )返回 (0 )
|