Opencv的RGB到HSV颜色空间转换
从 RGB 到 HSL 或 HSV 的转换
设 (r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数。设 max 等价于 r, g 和 b 中的最大者。设 min 等于这些值中的最小者。要找到在 HSL 空间中的 (h, s, l) 值,这里的 h ∈ [0, 360)度是角度的色相角,而 s, l ∈ [0,1] 是饱和度和亮度,计算为:
(1)Matlab RGB转换为HSV
I = imread('Lena.jpg');
HSV = rgb2hsv(I);
H = HSV(:, :, 1);
S = HSV(:, :, 2);
V = HSV(:, :, 3);
figure;
subplot(2, 3, 1); imshow(I);
//subplot(2, 3, 2); imshow(HSV);
subplot(2, 3, 4); imshow(H);
subplot(2, 3, 5); imshow(S);
subplot(2, 3, 6); imshow(V);
(2)Opencv中RGB转换为HSV
// BRGtoHSVShow.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include "cvaux.h"
int main( )
{
IplImage* src = NULL;
IplImage* floatsrc = NULL;
IplImage* floathsv = NULL;
IplImage* floatimgH = NULL;
IplImage* floatimgS = NULL;
IplImage* floatimgV = NULL;
cvNamedWindow( "src", 1 );
cvNamedWindow( "H通道", 1 );
cvNamedWindow( "S通道", 1 );
cvNamedWindow( "V通道", 1 );
src = cvLoadImage( "lena.jpg", -1);
cvShowImage( "src", src );
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 );//归一化之后方能够显示
//cvConvertScale( src, floatsrc, 1, 0 );
//cvShowImage("floatsrc",floatsrc);
//cvWaitKey(-1);
//将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, NULL);
cvShowImage( "src", src );
cvShowImage( "H通道", floatimgH );
cvShowImage( "S通道", floatimgS );
cvShowImage( "V通道", floatimgV );
//CV_BGR2HSV
cvWaitKey( 0 );
cvReleaseImage( &src );
cvReleaseImage( &floathsv );
cvReleaseImage( &floatimgH );
cvReleaseImage( &floatimgS );
cvReleaseImage( &floatimgV );
return 0;
}
参考资料:
http://blog.163.com/my_it_dream_pwj/blog/static/178414305201131310153036/
http://www.ilovematlab.cn/thread-95980-1-1.html
http://blog.sina.com.cn/s/blog_658cfb1d01014fv5.html
http://zhidao.baidu.com/question/259749959.html
http://www.opencv.org.cn/forum/viewtopic.php?t=4032
http://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4
Opencv的RGB到HSV颜色空间转换相关推荐
- RGB与HSV颜色空间转换
RGB转化到HSV的算法: max=max(R,G,B): min=min(R,G,B): V=max(R,G,B): S=(max-min)/max: HSV颜色空间模型(圆锥模型) [2] if ...
- 数字图像处理与Python实现-颜色空间转换-RGB颜色空间与HSV颜色空间转换
RGB颜色空间与HSV颜色空间转换 RGB颜色空间与HSV颜色空间转换 1. 前言 2. RGB颜色空间与HSV颜色空间转换描述 3. 代码实现 1. 前言 HSV(Hue, Saturation, ...
- 利用OpenCV的函数cvtcolor()进行颜色空间转换时需要注意的地方
OpenCV的函数cvtcolor()的原型如下: C++原型: void cv::cvtColor(InputArray src,OutputArray dst,int code,int dstCn ...
- 由RGB到HSV颜色空间的理解
1. RGB模型 2. HSV模型 3. 如何理解RGB与HSV的联系 4. HSV在图像处理中的应用 5. opencv中RGB-->HSV实现 在图像处理中,最常用的颜色空间是RGB模型,常 ...
- opencv图像处理:一、颜色空间转换
一.简介 opencv有超150种颜色空间转换,在这里我们主要介绍2种经常用到的颜色空间转换(RGB->GRAY, RGB->HSV). HVS色相取值范围[0, 179],亮度取值范围[ ...
- 从 RGB 到 HSV 的转换详细介绍
从RGB 到 HSV 的转换详细介绍 1.RGB RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红.绿.蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和, ...
- FPGA实现RGB转HSV的转换
FPGA实现RGB转HSV的转换 欢迎添加QQ:2639406604一起交流 1 RGB色彩空间 在图像处理中,最常见的就是RGB色彩模型.在RGB模型中,每种颜色出现在红.绿.蓝的原色光谱分量中.该 ...
- 由RGB到HSV的转换详解
由RGB到HSV的转换详解 1RGB色彩空间 在图像处理中,最常见的就是RGB色彩模型.在RGB模型中,每种颜色出现在红.绿.蓝的原色光谱分量中.该模型基于笛卡尔坐标系.如图1所示,RGB原色值位于3 ...
- RGB到HSV色彩空间转换表
RGB到HSV色彩空间转换表
最新文章
- 回调函数和闭包的理解
- 索尼将成立200亿日元基金 投资机器人、人工智能等新兴企业
- Tomcat如何将项目发布到webapps目录下
- 网易易盾的“外挂对抗战”,游戏出海之路如何走得更安全?
- [Asp.Net] Form验证中 user.identity为false
- python hash函数_Python hash()函数
- java session.load_java – 了解hibernate中的session.get vs session.load方法
- 20145322何志威 《信息安全系统设计基础》第2周学习总结
- Cannot uninstall ‘llvmlite‘. It is a distutils installed project and thus we cannot accurately deter
- cassandra java cql_使用Cassandra CQL Java Driver 访问Lindorm
- 如果到来,会是怎样情况,fuck,
- python- re模块(正则表达式)
- Jmeter报错Couldn‘t save test plan to file
- vue全家桶_vue脚手架
- 年薪20万、50万、100万的算法工程师,到底有什么区别?
- Lua Busted 单元测试实战
- Python数据压缩和存档——zlib/gzip/bzip2/lzma/zip/tar
- MySQL常见数据类型(小胖虎带你了解MySQL基础知识,只为博君一关注)
- 康海时代nc系列串口服务器,康海时代NC900系列产品
- 悲剧:国际品牌大部分手机打不通救命电话,只通“911”