1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| read_image (Image, 'test.png')
* 拆分颜色,转为R 、G 、 B 三通道图片 decompose3 (Image, Red, Green, Blue) * 转换为HSV图像[色调(H),饱和度(S),明度(V)] trans_from_rgb (Red, Green, Blue, Hue, Saturation, Value, 'hsv')
************* 识别蓝色区域 * 抠图,使用H/S分量提取感兴趣区域 threshold (Saturation, SRegion, 125, 145) reduce_domain (Hue, SRegion, HSReducedRegion)
* 可在Hue图像中ctrl加鼠标查看大致范围 * 例如蓝色是Hue值在130-150范围内的区域 * 对在Hue图像中截取的感兴趣区域检测,检测值在某一颜色范围内的区域。 threshold (HSReducedRegion, thresholdRegion, 130, 150) * 分离检测出来的区域 connection (thresholdRegion, ConnectedRegions) * 选择面积最大的区域 select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 0) * 闭运算:先膨胀后腐蚀 closing_circle (SelectedRegions, RegionClosing, 3.5) reduce_domain (Image, RegionClosing, targetRegion)
dev_clear_window() dev_display(targetRegion) dev_disp_text ('按F5继续运行', 'image', 10, 10, 'black', [], []) stop()
************* 识别粉红色区域 * 抠图,使用H/S分量提取感兴趣区域 threshold (Saturation, SRegion, 75, 90) reduce_domain (Hue, SRegion, HSReducedRegion)
* 可在Hue图像中ctrl加鼠标查看大致范围 * 例如蓝色是Hue值在235-245范围内的区域 * 对在Hue图像中截取的感兴趣区域检测,检测值在某一颜色范围内的区域。 threshold (HSReducedRegion, thresholdRegion, 235, 245) * 分离检测出来的区域 connection (thresholdRegion, ConnectedRegions) * 选择面积最大的区域 select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 0) * 闭运算:先膨胀后腐蚀 closing_circle (SelectedRegions, RegionClosing, 3.5) reduce_domain (Image, RegionClosing, targetRegion)
dev_clear_window() dev_display(targetRegion) stop ()
|