博客
关于我
matlab练习程序(RGB2HSV、HSV2RGB)
阅读量:802 次
发布时间:2023-02-07

本文共 1603 字,大约阅读时间需要 5 分钟。

色相、饱和度、明度的相互转换

在图像处理领域,色相、饱和度和明度是三个重要的颜色特性参数,它们之间具有密切的关联关系。通过对这些参数的转换和计算,我们可以更好地理解图像的颜色特性。

以下是基于MATLAB的代码解释:

清除所有图形窗口并重置颜色缓冲区:

clear all;close all;clc;img = imread('lena_color.jpg');  % 读取图像img = mat2gray(img);  % 将图像转换为灰度图像

获取图像的RGB值:

[m n dim] = size(img);  % 获取图像的大小imshow(img);  % 显示图像R = img(:,:,1);  % 获取红色通道G = img(:,:,2);  % 获取绿色通道B = img(:,:,3);  % 获取蓝色通道

色相转换:

H = zeros(m, n);  % 初始化色相矩阵S = zeros(m, n);  % 初始化饱和度矩阵V = zeros(m, n);  % 初始化明度矩阵for i = 1:m    for j = 1:n        r = R(i, j);        g = G(i, j);        b = B(i, j);                MAX = max([r, g, b]);  % 获取颜色通道的最大值        MIN = min([r, g, b]);  % 获取颜色通道的最小值                if MAX == MIN            H(i, j) = 0;  % 当颜色单调时,色相为0        elseif MAX == r && g > b            H(i, j) = 60 * (g - b) / (MAX - MIN);  % 计算色相角        elseif MAX == r && g < b            H(i, j) = 60 * (b - g) / (MAX - MIN);  % 计算色相角        elseif MAX == g            if b > r                H(i, j) = 60 * (b - r) / (MAX - MIN);  % 计算色相角            else                H(i, j) = 60 * (r - b) / (MAX - MIN);  % 计算色相角            end        elseif MAX == b            if r > g                H(i, j) = 60 * (r - g) / (MAX - MIN);  % 计算色相角            else                H(i, j) = 60 * (g - r) / (MAX - MIN);  % 计算色相角            end        end                % 饱和度计算(该部分代码未在示例中完整展示)        % V(i, j) = 1 - (MIN / MAX);  % 饱和度计算公式示例            endend

饱和度计算:

% 以下为饱和度计算的示例代码片段V(i, j) = 1 - (MIN / MAX);  % 饱和度计算公式

色相、饱和度和明度之间的关系:

  • 色相(H)反映了颜色的颜色特性。
  • 饱和度(S)描述了颜色纯度,饱和度越高,颜色越纯。
  • 明度(V)表示颜色亮度,明度越高,颜色越亮。

通过上述代码,我们可以清晰地看到色相、饱和度和明度之间的计算关系。这三者共同描述了图像的颜色特性,是图像处理和计算中的重要参数。

转载地址:http://gfyfk.baihongyu.com/

你可能感兴趣的文章
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>
MySQL —— 视图
查看>>
web项目 log4j2 指定配置文件路径
查看>>
mysql 不区分大小写
查看>>
mysql 两列互转
查看>>
MySQL 中开启二进制日志(Binlog)
查看>>
MySQL 中文问题
查看>>
MySQL 中日志的面试题总结
查看>>
mysql 中的all,5分钟了解MySQL5.7中union all用法的黑科技
查看>>
MySQL 中的外键检查设置:SET FOREIGN_KEY_CHECKS = 1
查看>>
Mysql 中的日期时间字符串查询
查看>>
mysql 中索引的问题
查看>>
MySQL 中锁的面试题总结
查看>>
MySQL 中随机抽样:order by rand limit 的替代方案
查看>>
MySQL 为什么需要两阶段提交?
查看>>
mysql 为某个字段的值加前缀、去掉前缀
查看>>
mysql 主从
查看>>
mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
查看>>