OpenCV中将BGR图像转为HSV,并显示

来源:互联网 发布:中传女被害案 知乎 编辑:程序博客网 时间:2024/06/03 16:22

        最近要处理视频中检测到的阴影,看了一些文章,提到可以利用HSV 三个通道中的一个或者两个组合来进行检测与分割,故小试了一下分离HSV通道,如下为代码,整了一个小时,才显示正确。      

       HSV颜色空间是描述比RGB更准确的颜色感知颜色联系,并在计算上更简单。从RGB颜色空间转换到HSV颜色空间在OpenCV中是如下实现的: 

        

    其中的RGB图像不管是8位的,还是16位的,首先需要将其统统转换成浮点型的,即其值在0~1之间。因此转换后的VS也属于0~1H属于0~360度。

 

#include "stdafx.h"#include "cv.h"#include "cxcore.h"#include "highgui.h"#include "cvaux.h"int _tmain(int argc, _TCHAR* argv[]){ IplImage* src = NULL; IplImage* floatsrc = NULL; IplImage* floathsv = NULL; IplImage* floatimgH = NULL; IplImage* floatimgS = NULL; IplImage* floatimgV = NULL; cvNamedWindow( "src", 1 );    cvNamedWindow( "HSV", 1 ); cvNamedWindow( "H通道", 1 ); cvNamedWindow( "S通道", 1 ); cvNamedWindow( "V通道", 1 ); src = cvLoadImage( "D:\\lena.jpg", -1); CvSize size = cvGetSize( src );     //先将图像转换成float型的 floatsrc = cvCreateImage( size, IPL_DEPTH_32F, 3 ); floathsv = cvCreateImage( size, IPL_DEPTH_32F, 3 ); floatimgH = cvCreateImage( size, IPL_DEPTH_32F, 1 ); floatimgS = cvCreateImage( size, IPL_DEPTH_32F, 1 ); floatimgV = cvCreateImage( size, IPL_DEPTH_32F, 1 ); //将src从8位转换到32位的float型 cvConvertScale( src, floatsrc, 1.0/255.0, 0 ); //将float型图像 从BGR转换到HSV  如果需要转换到其他的颜色空间 那么改变CV_BGR2HSV即可 //cvCvtColor要求两个参数的类型必须完全相同,所以要转为float型 cvCvtColor( floatsrc, floathsv, CV_BGR2HSV); //将三通道图像 分解成3个单通道图像,H对应的通道时0,S、V对应的通道时1和2 //cvCvtPixToPlane(picHSV, h_plane, s_plane, v_plane, 0); cvSplit( floathsv, floatimgH, floatimgS, floatimgV, 0); cvShowImage( "src", src ); cvShowImage( "HSV", floathsv ); cvShowImage( "H通道", floatimgH ); cvShowImage( "S通道", floatimgS ); cvShowImage( "V通道", floatimgV );  cvWaitKey( 0 ); cvReleaseImage( &src ); cvReleaseImage( &floathsv ); cvReleaseImage( &floatimgH ); cvReleaseImage( &floatimgS ); cvReleaseImage( &floatimgV ); return 0;}


    

 

      

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 成绩差该怎么办贴吧 宝宝只会匍匐爬怎么办 一年级的孩子数学不好怎么办 小学一年级孩子数学不好怎么办 孩子上一年级数学太差怎么办 智商低情商也低怎么办? 孩子字写得很大怎么办 孩子拿笔重 写字太黑 怎么办 孩子语文成绩好数学不行怎么办? 孩子现在二年级特别叛逆怎么办 孩子又笨又蠢怎么办 四年级孩子数学计算能力差怎么办 孩子四年级数学理解能力差怎么办 孩子小学四年级数学很差怎么办 孩子做作业太慢怎么办 小学三年级数学成绩差怎么办 初一数学考了3分怎么办 初二物理太差该怎么办 三年级孩子字写的差怎么办 小学三年级数学才考86怎么办 小孩子一发脾气就打妈妈怎么办 孩子做错事不肯道歉怎么办 小孩写作业注意力不集中怎么办 六年级的数学下册差怎么办 一年级小孩做作业慢怎么办 静不下心写作业怎么办 二年级应用题太差怎么办 小学二年级数学差怎么办 小学二年级成绩差怎么办 6个月小孩爱动怎么办 儿子叛逆期我该怎么办 宝宝两岁好动不听话怎么办 生宝宝后奶水少怎么办 生了孩子没出来怎么办 孩子在学校表现不好怎么办 3岁半宝宝话太多怎么办 孩子不喜欢和小朋友玩怎么办 孩子不喜欢和小朋友说话怎么办 4岁半宝宝不听话怎么办 小孩在学校打老师怎么办 老师老找孩子时怎么办