推广 热搜: csgo  vue  2023  angelababy  gps  信用卡  新车  htc  落地  控制 

圣诞红rgb:庞贝红rgb

   2023-05-20 网络整理佚名2800
核心提示:数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。HSV模型中颜色的参数分别是:色调(H:hue),饱和度(S:saturation),亮度(V:value)。(3)亮度(V:value):取值范围为0(黑

颜色模型

数字图像处理中常用的模型有RGB(红、绿、蓝)模型和HSV(色调、饱和度、亮度)模型。 RGB 广泛用于彩色显示器和彩色摄像机。 我们平时的图片一般都是RGB模型。 HSV模型更符合人们描述和解释颜色的方式,HSV的颜色描述对人们来说是自然而直观的。

单纯疱疹病毒模型

HSV模型中颜色的参数有:色调(H:hue)、饱和度(S:saturation)、亮度(V:value)。 由 AR Smith 于 1978 年创建的色彩空间,也称为 Hexcone 模型。

(1)色调(H:hue):以角度衡量,取值范围0°~360°,从红色开始逆时针数,红色为0°,绿色为120°,蓝色为240°。 它们的互补色是:黄色为60°,青色为180°,品红色为300°;

中国红rgb_圣诞红rgb_庞贝红rgb

(2)饱和度(S:saturation):取值范围为0.0到1.0,值越大,颜色越饱和。

(3)亮度(V:value):取值范围为0(黑色)到255(白色)

将 RGB 转换为 HSV

设(r,g,b)分别为一种颜色的红、绿、蓝坐标,它们的值是0到1之间的实数。设max等于r、g、b中的最大值。 让 min 等于这些值中的最小值。 求HSV空间中的(h, s, v)值,其中h ∈ [0, 360)为色相角,s, v ∈ [0,1]为饱和度和明度,方法为如下:

最大=最大(R,G圣诞红rgb,B)

庞贝红rgb_中国红rgb_圣诞红rgb

分钟=分钟(R,G,B)

如果 R = 最大值,H = (GB)/(最大值-最小值)

如果 G = 最大值,H = 2 + (BR)/(最大值-最小值)

如果 B = 最大值,H = 4 + (RG)/(最大值-最小值)

高 = 高 * 60

庞贝红rgb_中国红rgb_圣诞红rgb

如果 H < 0,H = H + 360

OpenCV下有一个函数可以直接将RGB模型转换成HSV模型。 在 OpenCV 中,H ∈ [0, 180],S ∈ [0, 255]圣诞红rgb,V ∈ [0, 255]。 我们知道H分量基本可以代表一个物体的颜色,但是S和V的取值也必须在一定的范围内,因为S代表的是H所代表的颜色和白色的混合程度,即也就是说,S越小,颜色越白,也就是颜色越浅; V表示H所代表的颜色与黑色混合的程度,也就是说V越小,颜色越深。 经过实验,识别蓝色的取值是H在100到140之间,S和V都在90到255之间。一些基本色H的取值可以设置如下:

橙0-22、黄22-38、绿38-75、蓝75-130、紫130-160、红160-179

执行

(1)读一张图片

庞贝红rgb_圣诞红rgb_中国红rgb

cvtColor(imgOriginal, imgHSV, COLOR_BGR2HSV);

(2) 对彩色图像进行均衡

split(imgHSV, hsvSplit);
equalizeHist(hsvSplit[2],hsvSplit[2]);
merge(hsvSplit,imgHSV);

(3) 检测颜色

inRange(imgHSV, Scalar(iLowH, iLowS, iLowV), Scalar(iHighH, iHighS, iHighV), imgThresholded);

圣诞红rgb_庞贝红rgb_中国红rgb

(4)进行开闭操作,排除噪声的影响。

Mat element = getStructuringElement(MORPH_RECT, Size(5, 5));
morphologyEx(imgThresholded, imgThresholded, MORPH_OPEN, element);
morphologyEx(imgThresholded, imgThresholded, MORPH_CLOSE, element);

代码:

#include
#include
#include
 
using namespace cv;
using namespace std;
 
//入口主函数
int main(int argc, char** argv)
{
 //打开摄像头,从摄像头获取图像
 VideoCapture cap(0);
 if (!cap.isOpened())
 {
 cout << "Cannot open the web cam"<rame from video stream" << endl;
 break;
 }
 //
 Mat imgHSV;
 vector hsvSplit;
 cvtColor(imgOriginal,imgHSV,COLOR_BGR2HSV);
 
 //转化成直方图均衡化
 split(imgHSV,hsvSplit);
 equalizeHist(hsvSplit[2],hsvSplit[2]);
 merge(hsvSplit,imgHSV);
 Mat imgThresholded;
 //确定颜色显示的范围
 inRange(imgHSV, Scalar(iLowH, iLowS, iLowV), Scalar(iHighH, iHighS,iHighV),imgThresholded);
 //去除噪点
 Mat element = getStructuringElement(MORPH_RECT,Size(5,5));
 morphologyEx(imgThresholded,imgThresholded,MORPH_OPEN,element);
  //连接连通域
 morphologyEx(imgThresholded, imgThresholded, MORPH_CLOSE, element);
 imshow("Thresholded Image",imgThresholded);
 imshow("Original",imgOriginal);
 //等待时间
 char Key = (char)waitKey(300);
 if (Key==27)
 {
 break;
 }
 }
 return 0;
}

本文福利,免费领取Qt开发学习资料包,技术视频,包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程、QT项目实战、QSS、OpenCV、Quick模块、面试题等)↓↓↓↓↓↓↓见下文↓↓点击文章底部领取费用↓↓

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON