RGB颜色模型和HSV颜色模型及其应用的汇总

在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。第一次接触HSV,书本里首先抛出的是一个圆锥模型,由于很少使用HSV,所以印象不深刻,但看一些资料时,HSV的概念时不时出来骚扰一些人的神经,所以,弄清楚HSV与RGB的关系,建立直观的印象是很有必要的。


1. RGB模型。

三维坐标:


原点到白色顶点的中轴线是灰度线,r、g、b三分量相等,强度可以由三分量的向量表示。

用RGB来理解色彩、深浅、明暗变化:

色彩变化: 三个坐标轴RGB最大分量顶点与黄紫青YMC色顶点的连线

深浅变化:RGB顶点和CMY顶点到原点和白色顶点的中轴线的距离

明暗变化:中轴线的点的位置,到原点,就偏暗,到白色顶点就偏亮


RGB模型也称为加色法混色模型。它是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。其混色规律是:以等量的红、绿、蓝基色光混合时

如果是三原色光中的两种色光(注意,不是颜料)进行等比例混合的话,那么,得到的结果是品红、黄、青三色光。

红+绿=黄

红+蓝=品红

绿+蓝=青

红+绿+蓝=白

三种基色光全无=黑

这是色光混合,称为加色混合法。加色法的混色规律可用图表示。

其配色方程描述:

F(物体颜色)=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是将RGB模型转换为HSV模型,并使用HSV模型定位灰度图中车牌的Matlab代码: ```matlab % 读取灰度图像 grayImg = imread('car_plate_gray.jpg'); % 将灰度图像转为RGB图像 rgbImg = cat(3, grayImg, grayImg, grayImg); % 将RGB图像转为HSV图像 hsvImg = rgb2hsv(rgbImg); % 提取亮度通道 value = hsvImg(:,:,3); % 对亮度通道进行二值化 threshold = graythresh(value); binaryImg = imbinarize(value, threshold); % 对二值化图像进行形态学处理 se = strel('rectangle', [4, 16]); binaryImg = imclose(binaryImg, se); % 找到所有连通区域 cc = bwconncomp(binaryImg); % 计算每个连通区域的宽高比 stats = regionprops(cc, 'BoundingBox'); ratios = zeros(cc.NumObjects, 1); for i = 1:cc.NumObjects bb = stats(i).BoundingBox; ratios(i) = bb(3) / bb(4); end % 找到宽高比最接近车牌的连通区域 [~, idx] = min(abs(ratios - 3)); plate = false(size(binaryImg)); plate(cc.PixelIdxList{idx}) = true; % 在原图像中显示车牌位置 figure; imshow(grayImg); hold on; bb = stats(idx).BoundingBox; rectangle('Position', [bb(1), bb(2), bb(3), bb(4)], 'EdgeColor', 'r', 'LineWidth', 2); ``` 这段代码将灰度图像转换为RGB图像,再将RGB图像转换为HSV图像。然后,提取HSV图像中的亮度通道,并对其进行二值化和形态学处理。接着,找到所有连通区域,并计算每个连通区域的宽高比。最后,找到宽高比最接近车牌的连通区域,并在原图像中显示车牌位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值