色彩转换——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)*(G-B))^(0.5))
If S = 0; H =0 ;
If B > G; H=360-H;
HSI to RGB
If 0 < H <= 120 then
B = 1/3(1-S)
R = 1/3(1+ ((S cos H) / (cos(60 -H))))
G = 1 -(B+R)
If 120 < H <= 240 then
H = H – 120
R = 1/3(1-S)
G = 1/3(1+ ((S cos H) / (cos(60 -H))))
B = 1 -(R+G)
If 240 < H <=360 then
H = H – 240
G = 1/3(1-S)
B = 1/3(1+ ((S cos H) / (cos(60 -H))))
R = 1 -(G+B)
算法参考来源: 冈萨雷斯 《数字图像处理》
function [H,S,I]=RgbToHsi(Image_Input)
Image_Input=double(Image_Input)/255;
R_Input=Image_Input(:,:,1);
G_Input=Image_Input(:,:,2);
B_Input=Image_Input(:,:,3);
I = (R_Input+G_Input+B_Input)/3.0;
[heigth,width]=size(R_Input);
S(1:heigth,1:width)=0;
H(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)];
S(i,j)=1-3*min(temp)/sum(temp);
X=R_Input(i,j);
Y=G_Input(i,j);
Z=B_Input(i,j);
temp_1=((X-Y)+(X-Z)+1e-6)/(2*sqrt((X-Y).^2+(X-Z)*(Y-Z))+1e-6);
Sigma=acos(temp_1);
if(Z<=Y)
H(i,j)=Sigma/(2*pi);
else
H(i,j)=(2*pi-Sigma)/(2*pi);
end
end
end
function Image_out=HsiToRgb(H,S,I)
H_angle=H*360;
[heigth,width]=size(H);
R(1:heigth,1:width)=0;
G(1:heigth,1:width)=0;
B(1:heigth,1:width)=0;
for i=1:heigth
for j=1:width
if(S(i,j)<1e-6)
R(i,j)=I(i,j);
G(i,j)=I(i,j);
B(i,j)=I(i,j);
else
if(H_angle(i,j)>=0 && H_angle(i,j)<=120)
B(i,j)=(1-S(i,j))*I(i,j);
sigma=(H_angle(i,j)-60)*pi/180;
temp=tan(sigma)/sqrt(3);
G(i,j)=(1.5+1.5*temp)*I(i,j)-(0.5+1.5*temp)*B(i,j);
R(i,j)=3*I(i,j)-G(i,j)-B(i,j);
else
if(H_angle(i,j)>=120 && H_angle(i,j)<=240)
R(i,j)=(1-S(i,j))*I(i,j);
sigma=(H_angle(i,j)-180)*pi/180;
temp=tan(sigma)/sqrt(3);
B(i,j)=(1.5+1.5*temp)*I(i,j)-(0.5+1.5*temp)*R(i,j);
G(i,j)=3*I(i,j)-R(i,j)-B(i,j);
else
G(i,j)=(1-S(i,j))*I(i,j);
sigma=(H_angle(i,j)-300)*pi/180;
temp=(tan(sigma))/sqrt(3);
R(i,j)=(1.5+1.5*temp)*I(i,j)-(0.5+1.5*temp)*G(i,j);
B(i,j)=3*I(i,j)-R(i,j)-G(i,j);
end
end
end
end
end
Image_out(:,:,1)=R;
Image_out(:,:,2)=G;
Image_out(:,:,3)=B;
色彩转换——RGB & HSI的更多相关文章
- 色彩转换——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
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 ...
- PhotoShop 图像处理 算法 汇总
不定期更新 ...... 直接点标题即可链接到原文. OpenCV 版:OpenCV 图像处理 图层混合算法: PS图层混合算法之一(不透明度,正片叠底,颜色加深,颜色减淡)PS图层混合算法之二(线性 ...
- Color Models (RGB, CMY, HSI)
目录 概 定义 RGB CMY CMYK HSI 相互的转换 RGB <=> CMY CMY <=> CMYK CMY > CMYK CMYK > CMY RGB ...
- RGB to HSI, HSI to RGB Conversion Calculator
The RGB color model is an additive system in which each color is defined by the amount of red, green ...
- QT 实现彩色图亮度均衡,RGB和HSI空间互相转换
从昨天折腾到今天.再折腾下去我都要上主楼了 大致和灰度图均衡是一样的,主要是不能像平滑什么的直接对R,G,B三个分量进行.这样出来的图像时没法看的.因此我们要对亮度进行均衡.而HSI彩色空间中的分量 ...
- 【转载】颜色空间-RGB、HSI、HSV、YUV、YCbCr的简介
转载自缘佳荟的博客. 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间.而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间.但 ...
- RGB 颜色空间转 HSI 颜色空间的matlab程序实现
RGB 颜色空间转 HSI 颜色空间的matlab程序实现 2014.10.20之前的内容有误,这里依据wikipedia更新了算法内容. 算法以wiki为准 https://en.wikipedia ...
- 基于RGB与HSI颜色模型的图像提取法
现实中我们要处理的往往是RGB彩色图像.对其主要通过HSI转换.分量色差等技术来提出目标. RGB分量灰度化: RGB可以分为R.G.B三分量.当R=G=B即为灰度图像,很多时候为了方便,会直接利用某 ...
随机推荐
- Android应用UI设计流程
Android应用UI设计流程 设计原理 1.在移动设计中,使用环境是最关键的因素.原型设计方法必须考虑尺寸因素 2.用户测试必须涵盖运动.声音和多点触控等方面: 进行移动设计和测试时,请将你知道的有 ...
- svn(subversion)代码版本管理在linux下的一些常见使用命令
以下的操作都是默认你的服务器安装有svn的大前提下进行的. 一.创建版本库 我的版本库存放路径为: /var/svn : 下面我们来创建一个名为 svntet 的版本库 注释: svnadmin ...
- Java中导出到Excel实现_aspose.cells
参考http://183615215-qq-com.iteye.com/blog/1858208 包下载:http://pan.baidu.com/s/1o6ju0ZK,将lib的jar包导入到工程中 ...
- 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别
http://www.cnblogs.com/AngelLee2009/p/3540527.html
- linux常用的内核镜像格式
linux常用的内核镜像格式 Linux内核有多种格式的镜像,包括vmlinux.Image.zImage等. 1. Linux内核镜像格式 1.1 vmlinux vmlinuz是可引导的. ...
- ROS_Kinetic_22 使用ROS的qt插件即ros_qtc_plugin实现Hi ROS!!!!
官网已经更新了教程说明,在此特别说明: https://github.com/ros-industrial/ros_qtc_plugin/wiki This wiki explains the pro ...
- UNIX网络编程——非阻塞connect: Web客户程序
非阻塞的connect的实现例子出自Netscape的Web客户程序.客户先建立一个与某个Web服务器的HTTP连接,再获取一个主页.该主页往往含有多个对于其他网页的引用.客户可以使用非阻塞conne ...
- 高斯函数 --> 高斯分布(正态分布)
具有如下形式的函数就是高斯函数. 其中a,b,c都是实数常数,a大于0 .由于在博客中写数学公式比较麻烦,还是直接放照片吧. 字写的很难看,不过应该可以看清楚.:(
- J2EE进阶(四)Spring配置文件详解
J2EE进阶(四)Spring配置文件详解 前言 Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程 ...
- java 判断是否是周末
package untitled7; import java.util.Date; import java.text.SimpleDateFormat; import java.util.Calend ...