程序练习2:blob分析的颜色识别例程

**********************************blon分析方法进行颜色识别********
dev_close_window ()
read_image (Image, 'cable2')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
**颜色空间变换--rgbtohsv
decompose3 (Image, Image1, Image2, Image3)
trans_from_rgb (Image1, Image2, Image3, Hue, Saturation, Indesity, 'hsv')
**利用饱和度分量图像来进行二值化处理
threshold (Saturation, Region, 68, 152)
**利用HSV的色调度分量中不同颜色对应的灰度值范围
reduce_domain (Hue, Region, ImageReduced)
**青色的色调度分量对应的灰度值范围100--125
threshold (ImageReduced, Regions, 100, 125)
**形状选择:选择最大的region
connection (Regions, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 0)
**形态学处理优化图像形状
closing_circle (SelectedRegions, Regions, 2)
**获得并显示青色的排线
reduce_domain (Image, Regions, ImageReduced1)
dev_display (ImageReduced)
dev_display (ImageReduced1)

        运行结果如下所示:

    

    

        这个程序主要是利用blob分析来分割物体,然后利用HSV颜色空间的Hue分量(色调度)中,不同的颜色对应不同的灰度值。程序中黄色分量的灰度值范围是20-45,我们利用20-45来识别图像中的黄色物体。青色的灰度值范围是100-125。

        和之前做的车牌识别一样,blob分析有一个特点就是对光照和背景的要求比较高。一旦环境发生变化,就会影响到图像处理的结果。所以,基于机器学习的图像处理是必然的趋势。

猜你喜欢

转载自blog.csdn.net/shenseyoulan/article/details/80974962