Halcon 颜色处理
彩色处理的思想是利用彩色或多光谱图像长牛股编码的附加信息。处理彩色图像可以简化许多机器视觉任务,并为灰度值图像中不可能解决的某些问题提供解决方案。在Halcon中颜色处理方法可分为以下几个方法:可以使用blob分析等标准方法处理彩色图像的各个通道。在这种方法中,首先要对原始图像的通道进行分解。以下是一个简单的颜色分割图像示例。
一 基本概念
在许多情况下,彩色图像的处理将比上面的例子更复杂。根据实际应用,以下步骤顺序可以会有所不同,或者可以完全省略某些步骤。
1 Demosaick Bayer 类型
如果获取的图像是Bayer图像,则可以使用cfa_to_rgb操作符将其转换为RGB。必须知道Bayer图像的编码类型。简单的Bayer类型及编码方式。
2 颜色空间转换
RGB色彩空间并不总是处理彩色图像的最合适的起点。针对这种情况,转换到不同的颜色空间可能会有用。Halcon支持许多重要的色彩空间。即,HSV和HSI色彩空间有利于选择独立于其强度的不同颜色。因此,在不同的光照条件下,这些色彩空间的色彩分割是很稳定的。
3 颜色分类
为进行颜色分类,需要区分的颜色必须经过训练。有不同的方法进行全彩色分类。包括:高斯混合模型(GMM),多层感知器(MLP)和支持向量机(SVM)分类。
4 感兴趣区域
使用感兴趣的区域可以加快颜色处理。分割的区域越受限制,分割速度越快,鲁棒性越强。
5 颜色分类
在前一步中训练的颜色将用于后续图像中进行实际分类。
6 通道组合
使用compose2到compose7或append_channel操作符,可以将任意数量的通道连接到多通道图像。这样,单独处理的通道可以重新组合成彩色图像,以实现可视化目的。
7 实例化结果
显示图像、区域和特征。
* color_simple.hdev: segment yellow cable in HSV color space
dev_close_window ()
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
for i := 1 to 2 by 1
read_image (Image, 'cable' + i)
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
threshold (Saturation, HighSaturation, 100, 255)
reduce_domain (Hue, HighSaturation, HueHighSaturation)
threshold (HueHighSaturation, Yellow, 20, 50)
connection (Yellow, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 0)
closing_circle (SelectedRegions, Yellow, 3.5)
reduce_domain (Image, Yellow, ImageReduced)
dev_display (HueHighSaturation)
dev_display (ImageReduced)
stop ()
endfor