色彩转换——RGB & HSV
RGB to HSV
The R,G,B values are divided by 255 to change the range from 0..255 to 0..1:
R' = R/255
G' = G/255
B' = B/255
Cmax = max(R', G', B')
Cmin = min(R', G', B')
Δ = Cmax - Cmin
Hue calculation:

Saturation calculation:

Value calculation:
V = Cmax
HSV to RGB
When 0 ≤ H < 360, 0 ≤ S ≤ 1 and 0 ≤ V ≤ 1:
C = V × S
X = C × (1 - |(H/ 60º) mod 2 - 1|)
m = V - C

(R,G,B) = (R'+m, G'+m, B'+m)
算法参考来源:http://www.rapidtables.com/convert/color/hsv-to-rgb.htm
CODE:
function [H,S,V]=RgbToHsv(Image_Input)
Image_Input=double(Image_Input)/255;
R_Input=Image_Input(:,:,1);
G_Input=Image_Input(:,:,2);
B_Input=Image_Input(:,:,3);
[heigth,width]=size(R_Input);
S(1:heigth,1:width)=0;
H(1:heigth,1:width)=0;
V(1:heigth,1:width)=0;
for i=1:heigth
for j=1:width
temp=[R_Input(i,j),G_Input(i,j),B_Input(i,j)];
Max_value=max(temp);
Min_value=min(temp);
C_value=Max_value-Min_value;
V(i,j)=Max_value;
if(C_value==0)
S(i,j)=0;
else
S(i,j)=C_value/Max_value;
end
X=R_Input(i,j);
Y=G_Input(i,j);
Z=B_Input(i,j);
if(C_value==0)
continue;
end
if(Max_value==X)
H(i,j)=mod((Y-Z)/C_value,6);
elseif(Max_value==Y)
H(i,j)=(Z-X)/C_value+2;
else
H(i,j)=(X-Y)/C_value+4;
end
H(i,j)=H(i,j)/6;
end
end
function Image_out=HsvToRgb(H,S,V)
%% H(0,1),S(0,1),L(0,1)
[height,width]=size(H);
R(1:height,1:width)=0;
G(1:height,1:width)=0;
B(1:height,1:width)=0;
for i=1:height
for j=1:width
C=V(i,j)*S(i,j);
X=C*(1-abs(mod(H(i,j)*6,2)-1));
m=V(i,j)-C;
temp=floor(H(i,j)*6+1);
switch(temp)
case 1
R(i,j)=C+m;
G(i,j)=X+m;
B(i,j)=m;
case 2
R(i,j)=X+m;
G(i,j)=C+m;
B(i,j)=m;
case 3
R(i,j)=m;
G(i,j)=C+m;
B(i,j)=X+m;
case 4
R(i,j)=m;
G(i,j)=X+m;
B(i,j)=C+m;
case 5
R(i,j)=X+m;
G(i,j)=m;
B(i,j)=C+m;
case 6
R(i,j)=C+m;
G(i,j)=m;
B(i,j)=X+m;
end
end
end
Image_out(:,:,1)=R;
Image_out(:,:,2)=G;
Image_out(:,:,3)=B;
色彩转换——RGB & HSV的更多相关文章
- 色彩空间-- RGB\HSV
颜色空间 标签(空格分隔): 计算机视觉 颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间. RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Sat ...
- 色彩转换——RGB & HSI
RGB to HSI I=(R+G+B)/3; S=1-3*min(R,G,B)/(R+G+B); H = cos^(-1)((0.5*((R-G)+(R-B))) / ((R-G)^2 + (R-B ...
- 色彩转换——RGB & HSL
RGB to HSL The R,G,B values are divided by 255 to change the range from 0..255 to 0..1: R' = R/255 G ...
- RGB HSV HLS三种色彩模式转换(C语言实现)
Android项目上处理图像的代码(注释全部去掉) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...
- PhotoShop 图像处理 算法 汇总
不定期更新 ...... 直接点标题即可链接到原文. OpenCV 版:OpenCV 图像处理 图层混合算法: PS图层混合算法之一(不透明度,正片叠底,颜色加深,颜色减淡)PS图层混合算法之二(线性 ...
- 由RGB到HSV颜色空间的理解
1. RGB模型 2. HSV模型 3. 如何理解RGB与HSV的联系 4. HSV在图像处理中的应用 5. opencv中RGB-->HSV实现 在图像处理中,最常用的颜色空间是RGB模型,常 ...
- RGB与HSV之间的转换公式及颜色表
RGB & HSV 英文全称 RGB - Red, Green, Blue HSV - Hue, Saturation, Value HSV --> RGB 转换公式 HSV --> ...
- HSV
HSV 相比于面向机器的RGB, HSV或HSI更贴近于人对颜色的描述: H: Hue, 颜色本身 S: Saturation, 纯色被白色稀释的程度. V: Value, 或I, Intensity ...
- [UWP]使用WriteableBitmap创建HSV色轮
1. HSV 1.1 HSV的定义 HSV都是一种将RGB色彩模型中的点在圆柱坐标系中的表示法,这种表示法试图做到比RGB基于笛卡尔坐标系的几何结构更加直观.HSV即色相.饱和度.明度(英语:Hue, ...
随机推荐
- EBS多组织结构
1. 业务组: 它代表组织结构的最高层次, 它分离了人力资源的信息. 例如, 当你查询人员时, 它会列出所有分配给相应业务组的成员, 而你自己所属于的组织只不过是业务组的一份子. 这样说可能造成一种误 ...
- JQuery 初探
放暑假了,终于有时间能学点前端的东西了.JQuery就是我第一个选择,锋利的JQuery.这本书真的很好.下面以一个ToggleButton形式的小例子开场吧. 引入JQuery库 在网页上引用JQu ...
- [ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器
本文地址:http://blog.csdn.net/sushengmiyan/article/details/42940883 本文作者:sushengmiyan ------------------ ...
- 如何优雅地退出python程序
如何优雅地退出python程序 一个单模的python程序,启动之后要能够优雅地关闭.即当用户按Ctrl+C或者kill pid的时候,程序都能从容关闭.实现起来非常简单. is_running = ...
- springMVC源码分析--国际化LocaleResolver(一)
springMVC给我们提供了国际化支持,简单来说就是设置整个系统的运行语言,然后根据系统的运行语言来展示对应语言的页面,一般我们称之为多语言.springMVC国际化机制就是可以设置整个系统的运行语 ...
- python 多进程 logging:ConcurrentLogHandler
python 多进程 logging:ConcurrentLogHandler python的logging模块RotatingFileHandler仅仅是线程安全的,如果多进程多线程使用,推荐 Co ...
- MySQL设计软件登录模块
学了一段时间的Java了,思量着做一点简单的小模块的东西吧,于是就有了下面的这个简单的小案例. 大致实现的功能就是注册于登录还有就是用到了一点,分层思想.仅此而已,所以非常的适合新手围观. 建立好数据 ...
- Cocoa触发方法调用的几种方法
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 1.SEL触发 SEL就是selector的缩写,它表示Cocoa中的方法选择器,不明白?那请仔细了解Objecti ...
- 华为解锁BL
华为手机要怎么查看手机是否需要解锁呢?相信许多机油都不懂自己入手的手机是否需要解锁.而华为手机自华为C8812之后的高通手机均需要先解锁才能够尽兴刷机或获取Root权限的.那么下面我给大家分享一下华为 ...
- java设计模式---三种工厂模式之间的区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式.其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性. 本文是本人对这三种模式学习后的一个小结以及对他 ...