Halcon基于灰度的颜色识别

程序流程如下:
Halcon基于灰度的颜色识别_第1张图片

如下图所示,首先读入图像,将彩色图像转为灰度图像,进行阈值分割,利用connection算子将每个区域分离开,再求取中心点坐标,将颜色名称显示在图像上。
Halcon基于灰度的颜色识别_第2张图片
识别结果:
Halcon基于灰度的颜色识别_第3张图片

Halcon代码如下:

dev_close_window()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, 'D:/机器视觉学习资料/Halcon学习/案例/颜色识别/黄绿红蓝.png')
rgb1_to_gray (Image, GrayImage)
dev_display (GrayImage)
*红色
threshold (GrayImage, Regions, 86, 89)
*蓝色
threshold (GrayImage, Regions1, 95, 97)
*绿色
threshold (GrayImage, Regions2, 159, 162)
*黄色
threshold (GrayImage, Regions3, 192, 197)
*分开不同区域
connection (Regions, ConnectedRegions)
connection (Regions1, ConnectedRegions1)
connection (Regions2, ConnectedRegions2)
connection (Regions3, ConnectedRegions3)
*清空窗口
dev_clear_window ()
*显示原图
dev_display (Image)
*求中心点坐标
area_center (Regions, Area, Row, Column)
*坐标显示在图像上
disp_message (WindowHandle, '红色', 'Image', Row, Column, 'black', 'true')
**其他也一样
area_center (Regions1, Area1, Row1, Column1)
disp_message (WindowHandle, '蓝色', 'Image', Row1, Column1, 'black', 'true')
area_center (Regions2, Area2, Row2, Column2)
disp_message (WindowHandle, '绿色', 'Image', Row2, Column2, 'black', 'true')
area_center (Regions3, Area3, Row3, Column3)
disp_message (WindowHandle, '黄色', 'Image', Row3, Column3, 'black', 'true')

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