2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 计算机视觉基础:图像处理 Task 03 - 颜色空间互转

计算机视觉基础:图像处理 Task 03 - 颜色空间互转

时间:2021-02-17 11:43:17

相关推荐

计算机视觉基础:图像处理 Task 03 - 颜色空间互转

文章目录

RGB与灰度图互转RGB与HSV互转RGB2HSVHSV2RGBC++代码实现

RGB与灰度图互转

RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开。它是最通用的面向硬件的彩色模型。该模型用于彩色监视器和一大类彩色视频摄像。

对于彩色图转灰度图,有一个很著名的心理学公式:

Gray = R * 0.299 + G * 0.587 + B * 0.114

RGB与HSV互转

HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。明度(V)表示色彩的明亮程度,但与光强无直接联系,取0-max(计算机中HSV取值范围和存储的长度有关)。

HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。HSV可以用于偏光矫正、去除阴影、图像分割等

RGB2HSV

HSV2RGB

C++代码实现

#include <opencv2/opencv.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>// mainint main( int argc, char** argv ){// Load imagecv::Mat srcImage = cv::imread("1.jpg"), dstImage;// RGB2GHSVcv::cvtColor(srcImage, dstImage, cv::COLOR_BGR2hHSV);imshow("Lab Space", dstImage);//RGB2GRAYcv::cvtColor(srcImage, dstImage, cv::COLOR_BGR2GRAY);imshow("Gray Scale", dstImage);cv::waitKey();return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。