RGB 颜色空间转 HSI 颜色空间的matlab程序实现

程序实现的时候注意把RGB像素值归一化就是了,然后千千万万要根据公式来,不能大意,我之前就有theta为复数的情况,是sqrt对负数进行运算进而得到了复数的结果(BUG)

程序是由matlab实现的,利用了矩阵运算的便捷性,这里如果直接操作单个元素的话。。。会很慢很慢,慢到能把我电脑卡死。。。如果改写成C可能程序的性能还是会有问题

好吧,介绍一下HSI和RGB的转化方法

%******************************************

% Code writer : EOF

% Code file : RGB2HSI.m

% Code date : 2014.10.15

%

% Code description:

% This code is a demo for how to transfrom pixel'value in

% RGB-space into HSI-space.

%

%******************************************

Img_Original = imread('/home/jasonleaster/Software/opencv-2.4.9/Project_in_XTU/PDF/mountain.png');

Height_Original = size(Img_Original,1);

Width_Original = size(Img_Original,2);

Channel_Orignal = size(Img_Original,3);

Theta = zeros(1,Height_Original * Width_Original);

S = zeros(1,Height_Original * Width_Original);

I = zeros(1,Height_Original * Width_Original);

R_temp = double(Img_Original(:,:,1));

G_temp = double(Img_Original(:,:,2));

B_temp = double(Img_Original(:,:,3));

R = R_temp./(R_temp + G_temp + B_temp);

G = G_temp./(R_temp + G_temp + B_temp);

B = B_temp./(R_temp + G_temp + B_temp);

for row = 1:Height_Original

for col = 1: Width_Original

% initialize min with 255(the max value in RGB space)

min = 255;

for channel = 1:Channel_Orignal

if min > Img_Original(row,col,channel)

min = Img_Original(row,col,channel);

end

end

Dark_channel(row,col) = double(min)/255;

end

end

Theta = acos(0.5*((R - G) + (R - B))./(sqrt((R -G).^2 + (R-B).*(G-B))));

S = 1 - (3./(R + G + B)).* double(Dark_channel);

I = 255*(R + G + B)./3;

S = 100*S;

for row = 1: Height_Original

for col = 1:Width_Original

if B(row,col) <= G(row,col)

H(row,col) = Theta(row,col);

else

H(row,col) = 2*pi - Theta(row,col);

end

end

end

H = H*180/pi;

matlab hsi颜色,RGB 颜色空间转 HSI 颜色空间的matlab程序实现相关推荐

  1. matlab转换hsl,RGB空间与HSL空间转换matlab代码

    关于RGB与HSL空间之间转换的原理,在网上很多,也很详细,这里就不做介绍了. 直接给出MATLAB代码. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % RGB空间转换到H ...

  2. 【颜色空间转换大集合】RGB到YIQ,RGB到HSI和HSI到RGB,RGB到YcbCr,RGB到XYZ颜色转换matlab代码的Demo,含详细的解释

    废话不说,先上图, 实现方式:matlab 实现功能: 实验目标 了解图像颜色空间的转换关系. 了解图像的文件结构. 实验内容 完成如下颜色空间的转换.(4 Points) RGB -> YIQ ...

  3. MATLAB 将RGB颜色空间转为HSI颜色空间、LAB颜色空间 原理及程序

    一张彩色图像是由R.G.B三个通道组成,所以首先需要将彩色图像分为三个通道的图像. 以下是对猫图进行单通道提取得到的图像. HSI颜色空间 HSI[Hue-Saturation-Intensity(L ...

  4. MATLAB中颜色模型介绍级各模型之间转换(RGB、HSV、NTSC、YCbCr、HSI)

    1.颜色模型定义 2.各颜色模型简介 3.颜色模型的转换 一.颜色模型定义 颜色模型:某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色.例如,RGB颜色模型就是三维直角坐标颜色系统的一个 ...

  5. OpenCV实现RGB颜色空间和HSI颜色空间的相互转换

    核心的转换公式: RGB-->HSI 截图来自中科院刘定生老师的<数字图像处理与分析>课件. HSI-->RGB 具体的数学公式参照冈萨雷斯版<数字图像处理(第三版)&g ...

  6. 【3000字扫盲】来搞“颜色“!RGB/HSV/HSI颜色模型

    一:RGB三原色 RGB三原色是怎么来的呢? 当然,是因为他们三者可以调配出其他所有颜色.但为什么偏偏是这三个颜色呢? 人眼有四种感光细胞,分别是三种锥状感光细胞,分别感知红,绿,蓝三色,以及感知黑白 ...

  7. hsi转rgb公式matlab,rgb与hsi模型转换matlab程序

    rgb与hsi模型转换matlab程序 数字图像处理:RGB与HSI模型转换Matlab程序 im1=imread( Fig6.30(01).jpg ); im3=im1; im1=im2double ...

  8. 如何使用理解MATLAB中的RGB颜色空间

    如何使用理解MATLAB中的RGB颜色空间 #在matlab 中读取彩色图片信息时,会发现读出的矩阵为(a,b,c),其中a为图片的行数,b为图片的列数,c为选取的颜色空间,例如(1,2,1),表示图 ...

  9. hsi和rgb的转换,以及hsi和rgb的补色变换 matlab代码

    版权声明:<–本博客所有内容均为自己在学习工作中的总结.摘录等-- --转载请注明出处-- --如有侵权请联系删除–>https://blog.csdn.net/ai359005521/a ...

最新文章

  1. How draw a stem -and -leaf amp; box-plot display by R.or Python
  2. 一些杂感杂想(一)谈谈加班、团队
  3. mongodb查看数据库和表的信息
  4. 蓝牙耳机芯片检测软件_安凯微推出TWS真无线蓝牙5.0耳机芯片
  5. 数据结构与算法--Tree(二叉树、B±树、红黑树)
  6. 嵌入式linux系统运行程序,嵌入式Linux系统启动过程
  7. visibilitychange ios设备不生效_如何调试支付宝(iOS)
  8. openwrt qca9886 ath10k只能连32台设备问题解决
  9. 网络安全系列-XI: 主流网络协议介绍
  10. 应用MATLAB求解线性代数题目(五)——特征值与特征向量
  11. ChucK初步(11)
  12. 如何有效防止“蹭网”——简述Wi-Fi加密方式与破解
  13. SVN checkout报错The XML response contains invalid XML
  14. 基于瑞芯微平台cif接口dvp相机的视频接入(ov2640、rv1126为例)
  15. 破解微信 DB, 导出 Mac 微信聊天记录
  16. p标签和超链接的认识
  17. 这么简单?三层交换机算是被玩透了
  18. 一物一码防伪溯源系统前景如何
  19. 信息系统项目管理师必背核心考点(五十七)知识管理工具
  20. win7系统自动休眠设置

热门文章

  1. 【C语言】 《弹跳的小球》游戏编写过程及思路,清屏函数、Sleep()函数的应用
  2. EasyAr实现图片识别
  3. 新用户域名实名认证教程---金万维
  4. Thread dump文件抓取和分析(JCA工具)
  5. clientX,offsetX,pageX,screenX的异同以Chrome浏览器测试
  6. 【占星学】天蝎座女生性格特点
  7. 天蝎项目整机柜服务器技术规范v1.01,天蝎项目整机柜服务器技术规范v1.01
  8. 网易Airtest跨平台的UI自动化测试框架
  9. 用现代 C++ 写一个高性能的服务器
  10. 什么是电阻器与电阻?