opencv 初学 之 RGB图转化为HSV图
(2012-03-13 20:05:23)
标签:
opencvrgbhsvmatlabit |
分类: 图像处理--opencv |
http://www/uc/myshow/blog/misc/gif/E___7485ZH00SIGG.gif
一、实验背景
二、实验的问题及解决
我原本是用matlab实验,后来由于matlab的处理速度太慢,故需要在vc中用opencv重新编写。所以,我将opencv生成的图片和matlab生成的图片进行了对比。
不理想方法:(来自百度百科)
IplImage *dst_image = cvCreateImage(cvGetSize(src),32,src->nChannels);
IplImage *src_image_32 = cvCreateImage(cvGetSize(src),32,src->nChannels);
cvConvertScale(src,src_image_32,1.0/255.0,0);//将原图RGB归一化到0-1之间
cvCvtColor(src_image_32,dst_image,CV_BGR2HSV);//得到HSV图
将原图由8个字节转化为32个字节;先做归一化,再转化图片。
再将得到的图片分离到H,S,V三个单通道上观察,差别巨大;效果十分的不理想。
理想方法:
cvCvtColor(src,dst_image,CV_BGR2HSV);//得到HSV图
直接使用,不要归一;将图片分离到H,S,V三个单通道上观察,发现和matlab的处理效果一致。但是,HSV图本身和matlab的处理效果不同。原因:http://www/uc/myshow/blog/misc/gif/E___6708EN00SIGG.gif
matlab中是按R,G, B三通道显示:
opencv中是按B, G, R三通道显示。