OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9054|回复: 18

摄像头颜色识别RGB转HSL(求教颜色HSL参数调节方法)

[复制链接]

10

主题

45

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2016-3-31
在线时间
265 小时
发表于 2017-8-6 16:38:03 | 显示全部楼层 |阅读模式
50金钱
使用的正点原子的stm32和ov7670,颜色识别中那位大神调试过颜色的HSL参数,比如黑色,其他颜色调试后都可以识别,就黑白有问题,有大神跳过黑白色的HSL参数范围么?

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=cpp,true]//¶áè¡Ä3μãμÄÑÕé« static void ReadColor( uint16_t usX, uint16_t usY, COLOR_RGB* color_rgb ) { unsigned short rgb; rgb = LCD_ReadPoint( usX, usY ); //»ñè¡ÑÕé«êy¾Y //×a»»3éÖμóòÎa[0,255]μÄèyÔ-é«Öμ color_rgb->Red = (unsigned char ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2017-7-14
在线时间
25 小时
发表于 2017-8-6 16:38:04 | 显示全部楼层
[mw_shl_code=cpp,true]//¶áè¡Ä3μãμÄÑÕé«
static void ReadColor( uint16_t usX, uint16_t usY, COLOR_RGB* color_rgb )
{
        unsigned short rgb;
       
        rgb = LCD_ReadPoint( usX, usY );                                        //»ñè¡ÑÕé«êy¾Y
       
        //×a»»3éÖμóòÎa[0,255]μÄèyÔ-é«Öμ
        color_rgb->Red                 = (unsigned char)( ( rgb & 0xF800 ) >> 8 );
        color_rgb->Green  = (unsigned char)( ( rgb & 0x07E0 ) >> 3 );
        color_rgb->Blue         = (unsigned char)( ( rgb & 0x001F ) << 3 );       
}
/*************************************/
//RGB×a&#187;&#187;&#206;aHLS
//H:é&#171;&#182;è
//L£oáá&#182;è
//S£o±¥oí&#182;è
static void RGB2HSL( const COLOR_RGB* color_rgb, COLOR_HLS* color_hls )
{
        int r, g, b;
        int h, l, s;
        int max, min, dif;
       
        r = color_rgb->Red;
        g = color_rgb->Green;
        b = color_rgb->Blue;
       
        max = maxOf3Values( r, g, b );
        min = minOf3Values( r, g, b );
        dif = max - min;
       
        //&#188;&#198;&#203;&#227;l£&#172;áá&#182;è
        l = ( max + min ) * 240 / 255 / 2;
       
        //&#188;&#198;&#203;&#227;h£&#172;é&#171;&#182;è
        if( max == min )//&#206;T&#182;¨ò&#229;
        {
                s = 0;
                h = 0;
        }
        else
        {
                //&#188;&#198;&#203;&#227;é&#171;&#182;è
                if( max == r )
                {
                        if( min == b )//h&#189;éóú0μ&#189;40
                        {
                                h = 40 * ( g - b ) / dif;
                        }
                        else if( min == g )//h&#189;éóú200μ&#189;240
                        {
                                h = 40 * ( g - b ) / dif + 240;
                        }
                       
                }
                else if( max == g )
                {
                        h = 40 * ( b - r ) / dif + 80;
                }
                else if( max == b )
                {
                        h = 40 * ( r - g ) / dif + 160;
                }
               
                //&#188;&#198;&#203;&#227;±¥oí&#182;è
                if( l == 0 )
                {
                        s = 0;
                }
                else if( l <= 120 )
                {
                        s = dif * 240 / ( max + min );
                }
                else
                {
                        s = dif * 240 / ( 480 - ( max + min ) );
                }                 
        }   
    color_hls->Hue = h;                                                        //é&#171;&#182;è
        color_hls->Lightness = l;                                //áá&#182;è
        color_hls->Saturation = s;                        //±¥oí&#182;è
}[/mw_shl_code]
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2017-8-6 17:03:36 | 显示全部楼层
帮顶!!
回复

使用道具 举报

10

主题

45

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2016-3-31
在线时间
265 小时
 楼主| 发表于 2017-8-6 22:58:25 | 显示全部楼层
本帖最后由 王维鋆 于 2017-8-6 23:03 编辑
PsychoZy 发表于 2017-8-6 16:38
[mw_shl_code=cpp,true]//&#182;áè&#161;&#196;3μ&#227;μ&#196;&#209;&#213;é&#171;
static void Rea ...


这是RGB转HSL的代码吧
回复

使用道具 举报

10

主题

45

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2016-3-31
在线时间
265 小时
 楼主| 发表于 2017-8-6 22:59:30 | 显示全部楼层
我是问颜色黑白代表的HSL这3个参数怎么跳   或者有人跳出这个范围么
回复

使用道具 举报

3

主题

18

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-7-14
在线时间
9 小时
发表于 2017-8-8 16:42:48 | 显示全部楼层
lz有没调出来了呀,我也正在找这个。。求助。
回复

使用道具 举报

11

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2017-7-14
在线时间
25 小时
发表于 2017-8-8 17:08:44 | 显示全部楼层
王维鋆 发表于 2017-8-6 22:59
我是问颜色黑白代表的HSL这3个参数怎么跳   或者有人跳出这个范围么

你的意思你要知道黑白的HSL参数范围?
回复

使用道具 举报

10

主题

45

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2016-3-31
在线时间
265 小时
 楼主| 发表于 2017-8-8 19:05:14 | 显示全部楼层
PsychoZy 发表于 2017-8-8 17:08
你的意思你要知道黑白的HSL参数范围?

是的 ,或者你调出过黑白的HSL吗  我其他颜色挑出来都可以,就黑白不行
回复

使用道具 举报

3

主题

18

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-7-14
在线时间
9 小时
发表于 2017-8-8 21:18:42 | 显示全部楼层
王维鋆 发表于 2017-8-8 19:05
是的 ,或者你调出过黑白的HSL吗  我其他颜色挑出来都可以,就黑白不行

lz你是在做什么的呀,可以分享其他颜色的参数范围吗?
回复

使用道具 举报

3

主题

18

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-7-14
在线时间
9 小时
发表于 2017-8-8 21:19:20 | 显示全部楼层
王维鋆 发表于 2017-8-8 19:05
是的 ,或者你调出过黑白的HSL吗  我其他颜色挑出来都可以,就黑白不行

颜色快跟踪吗??
回复

使用道具 举报

11

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2017-7-14
在线时间
25 小时
发表于 2017-8-8 21:32:00 | 显示全部楼层
王维鋆 发表于 2017-8-8 19:05
是的 ,或者你调出过黑白的HSL吗  我其他颜色挑出来都可以,就黑白不行

我没用过HSL,这是别人的程序,我就看了下,发现有RGB565转HSL的函数就发给你了,黑色的RGB565网上可以查到,你用这个函数转换一下不可以吗?别人的程序是摄像头识别颜色,你要的话我可以发给你
回复

使用道具 举报

10

主题

45

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2016-3-31
在线时间
265 小时
 楼主| 发表于 2017-8-8 22:38:54 | 显示全部楼层
PsychoZy 发表于 2017-8-8 21:32
我没用过HSL,这是别人的程序,我就看了下,发现有RGB565转HSL的函数就发给你了,黑色的RGB565网上可以查 ...

不行的  干不起
回复

使用道具 举报

10

主题

45

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
309
金钱
309
注册时间
2016-3-31
在线时间
265 小时
 楼主| 发表于 2017-8-8 22:40:33 | 显示全部楼层
lemonlin 发表于 2017-8-8 21:18
lz你是在做什么的呀,可以分享其他颜色的参数范围吗?

明天就电赛了其他颜色参数调节 用画图 软件一样的啊  只是我想看看有黑白跳出来了的么
回复

使用道具 举报

11

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2017-7-14
在线时间
25 小时
发表于 2017-8-8 22:51:04 来自手机 | 显示全部楼层
王维鋆 发表于 2017-8-8 22:38
不行的  干不起

没什么?
回复

使用道具 举报

11

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2017-7-14
在线时间
25 小时
发表于 2017-8-9 14:05:29 | 显示全部楼层
例程

实验33 摄像头实验.zip

4.5 MB, 下载次数: 679

回复

使用道具 举报

3

主题

18

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-7-14
在线时间
9 小时
发表于 2017-8-10 00:32:33 | 显示全部楼层
王维鋆 发表于 2017-8-8 22:40
明天就电赛了其他颜色参数调节 用画图 软件一样的啊  只是我想看看有黑白跳出来了的么

同样求助啊,你调好了黑白的吗,我都想先自己二值化了,跳过他的算法里的对比,虽然这样感觉不太好啊。
你用的是easy trace移植的吗

回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-5-14
在线时间
3 小时
发表于 2019-7-14 10:37:48 | 显示全部楼层
黑白的HSL值的范围是多少啊,我也没有调出来
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2020-9-23
在线时间
20 小时
发表于 2021-3-10 15:47:07 | 显示全部楼层
我也是这个问题,请求大神分享图像二值化处理后HSL值的范围啊!我看网上分享的范围自己试了一下感觉不靠谱啊
回复

使用道具 举报

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2021-7-8
在线时间
11 小时
发表于 2021-7-10 07:44:23 | 显示全部楼层
PsychoZy 发表于 2017-8-6 16:38
[mw_shl_code=cpp,true]//&#182;áè&#161;&#196;3μ&#227;μ&#196;&#209;&#213;é&#171;
static void Rea ...

666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-23 18:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表