OpenCV中RGB转HSV和HSV转RGB问题
2014-03-04 22:07
309 查看
通常理论上HSV模型的各分量的取值范围为:H分量0到360,S分量0到255,V分量0到255。但是在OpenCV中需要注意一些问题。
OpenCV中进行RGB和HSV颜色模型转换的函数是cvCvtColor(src,dst,xxx),下面给出OpenCV中的各种注意点。
(1)IplImage* src = cvLoadImage("lena.jpg",1);
IplImage* imghsv = cvCreateImage(cvGetSize(src),8,3);
cvCvtColor(src ,imghsv,CV_BGR2HSV);//BGR转换成HSV模型
默认以8位无符号形式载入,那么转换后的HSV各分量范围是H为0到180,S为0到1,V为0到255。(因为8位无符号型变量无法放下360的数据,这里opencv直接除以2)
(2)IplImage* src = cvLoadImage("lena.jpg",1);
IplImage* src_float = cvCreateImage(cvGetSize(src),IPL_DEPTH_32F,3);
IplImage* imghsv = cvCreateImage(cvGetSize(src),8,3);
cvConvertScale(src,src_float,1.0,0);//将src图像从8位转换成32位float型变量
cvCvtColor(src_float,imghsv,CV_BGR2HSV);//BGR转换成HSV模型
都先转换成32为float型图像,然后在进行HSV模型转换,这样转换后的各分量范围是H为0到360,S为0到1,V为0到255。
(3)当进行HSV各分量显示的时候,可以通过cvSplit函数将各通道分离,然后通过cvConvertScale函数将各分量的范围都转化成0到255,在通过8位无符号型图像显示即可。因为cvShowImage函数只能显示8位无符号型图像,不能显示32位Float型图像。
(4)当进行HSV模型还原到RGB模型时,这里使用cvCvtColor函数就要注意,输入的HSV模型的图像必须将HSV各分量还原到默认的范围。这样cvCvtColor转换后的RGB图像才是正确的。
OpenCV中进行RGB和HSV颜色模型转换的函数是cvCvtColor(src,dst,xxx),下面给出OpenCV中的各种注意点。
(1)IplImage* src = cvLoadImage("lena.jpg",1);
IplImage* imghsv = cvCreateImage(cvGetSize(src),8,3);
cvCvtColor(src ,imghsv,CV_BGR2HSV);//BGR转换成HSV模型
默认以8位无符号形式载入,那么转换后的HSV各分量范围是H为0到180,S为0到1,V为0到255。(因为8位无符号型变量无法放下360的数据,这里opencv直接除以2)
(2)IplImage* src = cvLoadImage("lena.jpg",1);
IplImage* src_float = cvCreateImage(cvGetSize(src),IPL_DEPTH_32F,3);
IplImage* imghsv = cvCreateImage(cvGetSize(src),8,3);
cvConvertScale(src,src_float,1.0,0);//将src图像从8位转换成32位float型变量
cvCvtColor(src_float,imghsv,CV_BGR2HSV);//BGR转换成HSV模型
都先转换成32为float型图像,然后在进行HSV模型转换,这样转换后的各分量范围是H为0到360,S为0到1,V为0到255。
(3)当进行HSV各分量显示的时候,可以通过cvSplit函数将各通道分离,然后通过cvConvertScale函数将各分量的范围都转化成0到255,在通过8位无符号型图像显示即可。因为cvShowImage函数只能显示8位无符号型图像,不能显示32位Float型图像。
(4)当进行HSV模型还原到RGB模型时,这里使用cvCvtColor函数就要注意,输入的HSV模型的图像必须将HSV各分量还原到默认的范围。这样cvCvtColor转换后的RGB图像才是正确的。
相关文章推荐
- OpenCV中RGB和HSV转换的问题
- opencv3学习笔记(三)RGB HSV YUV相互转换
- opencv之Rgb图像转化到HSV、Lab空间,对各通道的操作
- OpenCV中读取RGB格式图像转成HSV格式图像显示
- 数据可视化作业:OpenCV颜色空间转换(RGB-HSV)
- opencv中RGB转HSV
- 【OpenCV】颜色空间RGB与HSV(HSL)的转换
- OpenCV中读取RGB格式图像转成HSV格式图像显示
- OpenCV中读取RGB格式图像转成HSV格式图像显示
- 【OpenCV】车牌定位RGB转HSV图像并打印输出各像素点的值
- 利用opencv绘制 灰度直方图 RGB直方图 HSV直方图 直方图均衡化
- 【OpenCV】颜色空间RGB与HSV(HSL)的转换
- openCv RGB到HSV空间的学习
- OpenCV中读取RGB格式图像转成HSV格式图像显示
- 【opencv+python】图像处理之一、颜色空间RGB,Gray与HSV
- 【学习 OpenCV】—— 色彩空间(RGB、HSV、rgb2hsv、rgb2gray 的实现)
- 有关hsv与rgb的问题
- OpenCV ios 摄像头获取和磁盘读取的图像RGB顺序问题
- 基于OpenCV的RGB和HSV色彩空间相互转换C++程序
- opencv 中关于rgb范围的问题