当前位置:   article > 正文

halcon颜色提取

halcon颜色提取

在Halcon中,颜色提取通常用于从图像中提取特定颇具的区域或对象。

将输入的 RGB 颜色空间转换为 HSV

* 根据颜色提取想要的目标
for Index:=1 to 2 by 1
    read_image (Image, 'cable'+Index)
    * 获取一个三通道图像中每个通道的图像
    * 红色通道(R)、绿色通道(G)和蓝色通道(Bdecompose3 (Image, R, G, B)
    
    * 将输入的 RGB 颜色空间转换为 HSV(色相、饱和度、亮度)颜色空间
    * RGB 分别代表红、绿、蓝通道的图像数据,
    * HSV 分别用于存储转换后的色相、饱和度、亮度信息。
    * rgb 不利于某些特定的颜色查找
    trans_from_rgb (R, G, B, H, S, V, 'hsv')
    
    * 二值化
    threshold (S, Region, 100, 255)
    * 将筛选后的图像从H色调中提取出来
    reduce_domain (H, Region, ImageReduced)
    
    * 将上述色调进行阈值处理
    threshold (ImageReduced, Region1, 30, 70)
    * 连通性
    connection (Region1, ConnectedRegions)
    * 筛选
    select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
    * 闭运算
    closing_circle (SelectedRegions, RegionClosing, 3.5)
    
    dev_clear_window ()
    dev_set_color ('blue')
    dev_set_draw ('margin')
    dev_display (Image)
    dev_display (RegionClosing)
endfor
  • 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

在这里插入图片描述

将Bayer格式的彩色滤波图像阵列图像转换为RGB彩色图像

read_image (Image1, 'patras')
* 获取三通道
decompose3 (Image1, R, G, B)
* rgb过度hsv
trans_from_rgb (R, G, B, H, S, V, 'hsv')
*HSV(色相、饱和度、亮度)颜色空间转换为 RGB(红绿蓝)颜色空间
*  R2G2B2 分别表示转换后的 RGB 图像的红色通道、绿色通道和蓝色通道。
trans_to_rgb (H, S, V, R2, G2, B2, 'hsv')
* 将给定的三个单通道图像 RGB 合成为一个多通道图像 
compose3 (R, G, B, MultiChannelImage)

* 将基于 Bayer 格式的彩色滤波阵列(CFA,Color Filter Array)图像通过双线性插值算法转换为 RGB 彩色图像
* 参数三:'bayer_gb' 表示输入图像的 Bayer 格式类型为 GB 格式,
* 参数四:'bilinear' 表示使用双线性插值算法进行颜色插值处理
cfa_to_rgb (MultiChannelImage, RGBImage, 'bayer_gb', 'bilinear')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

根据霍夫变换寻找直线

read_image (Image, '矩阵')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
*剪切指定的矩形图像
rectangle1_domain (Image, ImageReduced, 198, 279, 340, 590)
*选中矩形的边缘
sobel_amp (ImageReduced, EdgeAmplitude, 'thin_sum_abs', 3)
dev_set_color ('red')
threshold (EdgeAmplitude, Region, 10, 255)
connection (Region, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)

* 根据霍夫变换寻找直线
* 参数一:输入图像
* 参数二:调整角度区域的分辨率。
* 参数三:阈值
* 参数四:图像中两个最大值的最小距离
* 参数五:图像中两个最大值的最小距离
* 参数六:线的法线角度(单位弧度)
* 参数七:检测到的线与原点的距离。
hough_lines (SelectedRegions, 4, 100, 5, 5, Angle, Dist)

dev_set_color ('blue')
*将查找到的线转换为区域
gen_region_hline (Regions, Angle, Dist)
*过滤无效的线
select_shape (Regions, SelectedRegions1, 'orientation', 'and', 0, 4)
dev_display (Image)
dev_display (SelectedRegions1)
  • 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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/271842
推荐阅读
相关标签
  

闽ICP备14008679号