RGB到HSV颜色空间的转换
2015-11-02 11:39
423 查看
图像特征的低层视觉特征主要有纹理、颜色、形状. 由于研究的需要,抽取一些颜色方面的特征,由于自己也是刚刚接触图像处理,有什么问题请多多指教!
opencv默认读取图像是RGB通道,现需要转化到HSV(Hue,Saturation,Value)颜色空间,opencv提供cvtColor(C++: void cvtColor(InputArray src,
OutputArray dst, int code, int dstCn=0 ))函数对颜色空间进行转换。
RGB到HSV的转化公式如下:
在opencv中,H:0~180 S:0~255 V:0~255
HSV颜色空间规定的取值范围是,H:0~360 S:0~1 V:0~1
因此如果需要转换从opencv的结果到HSV颜色空间,需要转换一下,H*2,S/255,V/255
放出萌萌的bran:
opencv默认读取图像是RGB通道,现需要转化到HSV(Hue,Saturation,Value)颜色空间,opencv提供cvtColor(C++: void cvtColor(InputArray src,
OutputArray dst, int code, int dstCn=0 ))函数对颜色空间进行转换。
RGB到HSV的转化公式如下:
在opencv中,H:0~180 S:0~255 V:0~255
HSV颜色空间规定的取值范围是,H:0~360 S:0~1 V:0~1
因此如果需要转换从opencv的结果到HSV颜色空间,需要转换一下,H*2,S/255,V/255
#include<opencv2/opencv.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace std; using namespace cv; int main() { //读入图像 Mat image = imread("E:\\VS2013\\bran.jpg"); Mat hsvimage; cout << "Size:" << image.size() << endl; cout << "Type:" << image.type() << endl; /// 创建窗口 namedWindow("BranStarkRGB"); namedWindow("BranStarkHSV"); cvtColor(image, hsvimage, CV_BGR2HSV); /// 显示图像 imshow("BranStarkRGB", image); imshow("BranStarkHSV", hsvimage); cout << (int)hsvimage.at<Vec3b>(0, 0).type << endl; //输出一些值进行对比 for (int i = 0; i < 10;++i){ for (int j = 0; j < 10; ++j){ cout << "B:" << (int)image.at<Vec3b>(i, j).val[0] << " G:" << (int)image.at<Vec3b>(i, j).val[1] << " R:" << (int)image.at<Vec3b>(i, j).val[2] << endl; cout << "H:" << (int)hsvimage.at<Vec3b>(i, j).val[0] << " S:" << (int)hsvimage.at<Vec3b>(i, j).val[1] << " V:" << (int)hsvimage.at<Vec3b>(i, j).val[2] << endl; } } /// 等待用户按键 waitKey(); return 0; }
放出萌萌的bran:
相关文章推荐
- Openfire 服务器更换ip后的恢复方法
- 如何在android平台上实现语音识别
- Scala教程(十六)Scala复合类型与依赖注入详解
- CE-LINK USB以太网转换器在升级EI Caption后连接问题
- iOS中autolayout的简单使用
- CS1061: “ASP.send_aspx”不包含“sender_TextChanged”的定义,并且找不到可接受类型为“ASP.send_aspx”的第一个参数的扩展方法“sender_Text
- swift学习笔记一
- HTTP所承载的货物(图像、文本、软件等)要满足的条件
- 黑马程序员——异常
- Spring web MVC 框架之 视图解析器(ViewResolver)
- 平摊分析(算法导论)
- QT5入门之27 -QPushButton
- 安卓弹出对话框——Alertdialog(一)
- 日期对话框DatePickerDialog
- PASSION之Mysql集群(二)
- springMVC3学习(十一)--文件上传CommonsMultipartFile
- namespaces命名空间(转载)
- mac os安装pyquery
- 程序优化的三个级别
- 位运算,安卓源码里的各种Flag