Halcon——颜色识别提取

文章目录

  • 前言
  • 一、颜色识别原理
  • 二、颜色识别为什么将其转换至HSV颜色空间
  • 三、源代码
  • 写在最后


前言

【Halcon】颜色识别提取
这里以嘉庚建筑风格为例~
Halcon——颜色识别提取_第1张图片


一、颜色识别原理

载入图像后,将其转换至HSV颜色空间,通过判断每个像素是否在所选取的范围内(根据所需的颜色而定),并将其标识出来即可。

二、颜色识别为什么将其转换至HSV颜色空间

目前在计算机视觉领域存在着较多类型的颜色空间。HSL作为最常见的圆柱坐标所表示的颜色模型,它重新影射了RGB模型,从而能够视觉上比RGB模型更具有视觉直观性。
简单地说HSV可以用更加直观的数据描述我们需要的颜色,H代表色彩,S代表深浅,V代表明暗,通过阈值的划分,颜色即可被区分出来。(H代表的色调基本上可以确定某种颜色,再结合饱和度S和亮度V信息判断大于某一个阈值即可。)
以下给出颜色参考范围:HSV基本颜色分量范围 - 百度文库 (baidu.com)
Halcon——颜色识别提取_第2张图片
至于对RGB、HSV等颜色空间的理解,可自行寻找相应博客,这里不做较多的讲解。

三、源代码

这里以嘉庚建筑风格为例 采用Halcon进行颜色识别提取(具体代码如下)

dev_close_window ()
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
* 读取嘉庚建筑风格的图像
read_image (Image,'D:/USER/Desktop/tkkc.jpg')
* 进行图像R、G、B分量分离
decompose3 (Image, Red, Green, Blue)
* 将R、G、B分量转为H、S、V分量
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
* 令S分量图像进行阈值处理
threshold (Saturation, HighSaturation, 100, 255)
* 提取H分量图像
reduce_domain (Hue, HighSaturation, HueHighSaturation)
* 针对提取的H分量进行阈值处理
threshold (HueHighSaturation, Result, 0, 18)
* 再将其从原始图像中提取出来
reduce_domain (Image, Result, ImageReduced)
* 最后显示读取图片
dev_display (ImageReduced)
write_image (ImageReduced, 'jpg', 0, 'D:/USER/Desktop/tkkc_result.jpg')
stop ()

以下是给出各个步骤所得图像帮助理解。
Halcon——颜色识别提取_第3张图片

写在最后

由于作者知识和写作能力有限,难免有缺点,欢迎专家和读者批评指正。

你可能感兴趣的:(Halcon,机器视觉,计算机视觉,图像处理)