knrt.net
当前位置:首页 >> opEnCv中RGB到HSV转换问题 >>

opEnCv中RGB到HSV转换问题

不可能是二值图像 无论你自己编的还是opencv的

OpenCV中有一个色彩空间转换函数名为cvCvtColor,可以将输入图像从一个色彩空间转换为另外一个色彩空间。调用这个函数,设置参数CV_BGR2HSV或CV_RGB2HSV即可实现RGB转HSV。更详细的使用方法可以参照相关文档。搜索一下这个函数即可。

光看RGB值很难把红色提取出来,建议转到HSV颜色空间。因为opencv 的H范围是0~180,红色的H范围大概是 (0~8)∪(160,180) S饱和度很重要,一般是大于一个值,S过低就是灰色(参考值S>80), V就亮度,过低就是黑色,过高就是白色(参考值220>V>50) PS...

【1】先调用cvCvtColor将图像转到HSV颜色空间,如:cvCvtColo(rgb,hsv,CV_BGR2HSV);然后调用cvSplit函数,就可以将H分量分离出来,再来单独访问H分量,H对于的通道是0即可。 【2】HSV(Hue,Saturation,Value)是根据颜色的直观特性由A.R.Smith在19...

cvCvtColor(...),是Opencv里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。 函数原型:void cvCvtColor( const CvArr* src, CvArr* dst, int code ); 参数: src 输入的 8-bit,16-bit或 32-bit单倍精度...

建议是不要使用wrapper,在config.hpp将#define ARMA_USE_WRAPPER语句注释掉,只有在需要使用本地库加速时再连接本地库。

(C++接口)split函数可以把三通道矩阵分割成三个单通道矩阵,这样就可以拿到S分量了。

代码好像没问题啊

1.既然知道了灰度值范围,为什么不直接用二值化? 2.选取色彩的时候应该要考虑S,要去除低Saturation的颜色。你这里没做,是不是有这个原因。 HALCON例程里提供了一个简单的办法提取红色。 可以直接用RGB转成3个灰度图。用红色通道的灰度图分别...

用你的程序跑了下,你这个应该是提取蓝色区域的代码, 提取红色区域我记得是H空间315°~360°和0°~23° 具体代码你自己 按照这个参数再调试下吧

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com