当前位置: 首页 > news >正文

Halcon 颜色分割算子、RGB和HSV之间的转换

认识RGB和HSV

在图像数字处理中,RGB和HSV是两种常用的颜色空间。

RGB代表 红色、绿色。蓝色

HSV代表  色相(Hue)、饱和度(Saturation)、明度(Value)

RGB常用于显示系统,是一种面向硬件的颜色空间

HSV常用于图像分析和处理,是一种符合人类视觉感知的颜色空间 

下面这个圆柱体表示 HSV空间    H用极坐标的极角表示   S用极坐标的极轴长度表示  V用圆柱中的高度表示

Hue用角度度量   范围: 0~360度

Halcon中的算子

原图

1. decompose3  图像分解

decompose3(MultiChannelImage,Image1,Image2,Image3)

将参数1图像转换成参数2,参数3,参数4

示例代码

decompose3 (Image, R, G, B)
dev_open_window (0, 0, Width/15, Height/15, 'black', WindowHandle)

dev_display (Image)
dev_display (R)
dev_display (G)
dev_display (B)

转换后的R图

转换后的G图 

转换后的B图

2.trans_from_rgb  颜色空间变换

trans_from_rgb(ImageRed, ImageGreen, ImageBlue,ImageResult1, ImageResult2, ImageResult3 , ColorSpace)

功能: 将图像从RGB颜色空间转换为任意空间(ColorSpace)。图像的三个通道在输入和输出上作为三个单独的图像传递

trans_from_rgb算子支持图像类型byte,uint2,int4和real。对于int4图像,图像不应包含负值。在真实图像的情况下,所有值都大部分都在0和1之间

输入参数
  • ImageRed:  输入图像(红色通道)
  • ImageGreen:  输入图像(绿色通道)
  • ImageBlue:  输入图像(蓝色通道)
输出参数
  •  ImageResult1: 输出图像(通道1)
  •  ImageResult2: 输出图像(通道2)
  • ImageResult3: 输出图像(通道3)

ColorSpace:  输出图像的颜色空间 

  •  默认值: ‘hsv’
  •  可选值(用于计算设备):  ‘cielab’, ‘cielchab’, ‘cieluv’, ‘cielchuv’, ‘hsv’, ‘hsi’
  • 可选值:‘argyb’, ‘cielab’, ‘cielchab’, ‘cielchuv’, ‘cieluv’, ‘ciexyz’, ‘ciexyz2’, ‘ciexyz3’, ‘ciexyz4’, ‘hls’, ‘hsi’, ‘hsv’, ‘i1i2i3’, ‘ihs’, ‘lms’, ‘yiq’, ‘yuv

示例代码
* RGB转换HSV
trans_from_rgb (R, G, B, H, S, V, 'hsv')
H图

S图

V图

3.compose3  三通道合并图

效果和decompose3 相反

示例代码

compose3 (H, S, V, hsv)
dev_open_window (0, 0, Width/12, Height/12, 'black', WindowHandle)
dev_display (hsv)
HSV效果图

运行结果对比  RGB   HSV

Halcon 算子示例

* 关闭窗口
dev_close_window ()
* 关闭程序计数器,图形变量更新,窗口图形更新
dev_update_off ()
* 读取图片
read_image (Image, 'F:/素材收集/图片素材/Videoshot_20241115_010654.jpg')
* 获取图像大小
get_image_size (Image, Width, Height)
* 彩色图像分割
decompose3 (Image, R, G, B)
* 打开一个窗体
dev_open_window (0, 0, Width/15, Height/15, 'black', WindowHandle)
* 在窗体展示图片
dev_display (Image)
dev_display (R)
dev_display (G)
dev_display (B)

*trans_from_rgb (R, G, B, H, S, V, 'rgb')
compose3 (R, G, B,rgb )
dev_display (rgb)
* RGB转换HSV
trans_from_rgb (R, G, B, H, S, V, 'hsv')

compose3 (H, S, V, hsv)
dev_open_window (0, 0, Width/12, Height/12, 'black', WindowHandle)
dev_display (hsv)

相关文章:

  • 基于STM32的智能垃圾分类与回收系统
  • Go红队开发—并发编程
  • 数据结构:二叉树的数组结构以及堆的实现详解
  • C++之继承详解
  • pikachu
  • MySQL 时区参数 time_zone 详解
  • 边缘计算收益低的三大指标
  • 使用Modbus协议西门子 S7-200 SMART PLC 通信
  • 组件传递props校验
  • leetcode59------螺旋矩阵II
  • sqlilab 46 关(布尔、时间盲注)
  • 用数组实现树的存储遍历【复习笔记】
  • 3DUNet-Pytorch-master环境配置(3dunet)
  • (IDE接入DeepSeek)简单了解DeepSeek接入辅助开发与本地部署建议
  • 【前端基础】Day 2 CSS层叠样式表
  • 说一下 SpringMVC的运行流程?
  • 代码随想录算法【Day54】
  • 系统架构设计:软件测试需要掌握的常用方法
  • pytorch阶段性总结1
  • 前端模拟请求池-浏览器同时发起大量请求
  • 云南省安委会办公室:大理州安全生产形势比较严峻,事故总量一直居高不下
  • 烈士沈绍藩遗孤、革命家帅孟奇养女舒炜逝世,享年96岁
  • 习近平出席俄罗斯纪念苏联伟大卫国战争胜利80周年庆典
  • 浙江一民企拍地后遭政府两次违约,“民告官”三年又提起民事诉讼
  • 美乌基金协议:美国搞了一套可在资源富集地区复刻的商业模式
  • 海南省三亚市委原常委、秘书长黄兴武被“双开”