rgb转hsi matlab,Matlab实现HSI与RGB转换 | 学步园
%将RGB图像转换为HSI图像
% 显示HSI图像
%直方图均衡化HSI图像
%将HSI图像转换回RGB图像
function rgbtohsi(x)
F=imread(x);
F=im2double(F);
r=F(:,:,1);
g=F(:,:,2);
b=F(:,:,3);
th=acos((0.5*((r-g)+(r-b)))./((sqrt((r-g).^2+(r-b).*(g-b)))+eps));
H=th;
H(b>g)=2*pi-H(b>g);
H=H/(2*pi);
S=1-3.*(min(min(r,g),b))./(r+g+b+eps);
I=(r+g+b)/3;
hsi=cat(3,H,S,I);
HE=H*2*pi;
HE=histeq(HE);
HE=HE/(2*pi);
SE=histeq(S);
IE=histeq(I);
choice=input('1:RGB 转换为 HSI\n2:显示HSI图像\n3:HSI转换为RGB图像\n4:色调均衡\n5:饱和度均衡\n6:亮度均衡 \n7:HSI均衡\n 输入您的选择 :');
switch choice
case 1
figure,imshow(F),title('RGB 图像');
figure, imshow(hsi),title('HSI 图像');
case 2
figure,imshow(F),title('RGB 图像');
figure, imshow(H),title('Hue 图像');
figure, imshow(S),title('饱和度图像');
figure, imshow(I),title('亮度图像');
case 3
C=hsitorgb(hsi);
figure,imshow(hsi),title('HSI 图像');
figure, imshow(C),title('RGB 图像');
case 4
RV=cat(3,HE,S,I);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI 图像');
figure,imshow(F),title('RGB 图像');
figure, imshow(C),title('RGB Image-Hue Equalized');
case 5
RV=cat(3,H,SE,I);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI 图像');
figure,imshow(F),title('RGB 图像');
figure, imshow(C),title('RGB 饱和度均衡');
case 6
RV=cat(3,H,S,IE);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI 图像');
figure,imshow(F),title('RGB 图像');
figure, imshow(C),title('RGB 亮度均衡');
case 7
RV=cat(3,HE,SE,IE);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI 图像');
figure,imshow(F),title('RGB 图像');
figure, imshow(C),title('RGB HSI 均衡');
otherwise
display('选择错误');
end
end
%函数,将HSI图像转换为RGB图像
function C=hsitorgb(hsi)
HV=hsi(:,:,1)*2*pi;
SV=hsi(:,:,2);
IV=hsi(:,:,3);
R=zeros(size(HV));
G=zeros(size(HV));
B=zeros(size(HV));
%RG Sector
id=find((0<=HV)& (HV<2*pi/3));
B(id)=IV(id).*(1-SV(id));
R(id)=IV(id).*(1+SV(id).*cos(HV(id))./cos(pi/3-HV(id)));
G(id)=3*IV(id)-(R(id)+B(id));
%BG Sector
id=find((2*pi/3<=HV)& (HV<4*pi/3));
R(id)=IV(id).*(1-SV(id));
G(id)=IV(id).*(1+SV(id).*cos(HV(id)-2*pi/3)./cos(pi-HV(id)));
B(id)=3*IV(id)-(R(id)+G(id));
%BR Sector
id=find((4*pi/3<=HV)& (HV<2*pi));
G(id)=IV(id).*(1-SV(id));
B(id)=IV(id).*(1+SV(id).*cos(HV(id)-4*pi/3)./cos(5*pi/3-HV(id)));
R(id)=3*IV(id)-(G(id)+B(id));
C=cat(3,R,G,B);
C=max(min(C,1),0);
end
rgb转hsi matlab,Matlab实现HSI与RGB转换 | 学步园相关推荐
- 颜色空间直方图matlab,使用Matlab绘制图像的rgb颜色空间和Lab颜色空间分量图和分量直方图 | 学步园...
%author sagittariusboy All right reserved 2013年7月28日 14:58:11 org = imread('laaa.jpg'); %org = imrea ...
- matlab角点坐标获取,MatLab角点检测(harris经典程序) | 学步园
这是源博客的出处,鄙人转过来是为了更好的保存!供大家一起学习!已将原始的博客的文章的位置附在上面! 至于代码的完整性和可运行性需要大家去自己考量! %MatLab角点检测程序harris. ori_i ...
- MATLAB递归将数字一个个输出,数米粒个数和每个米粒面积的matlab算法实现(递归)。 | 学步园...
使用Matlab软件自带的rice.png图片进行处理. 不知道使用的函数利用help function-name 或者 lookfor function-name 查看 这里是实现的主要代码段 %T ...
- matlab写出函数表达式,matlab 由状态空间表达式求传递函数 笔记 | 学步园
1 内容 有一个两输入两输出线性系统 ,求该系统的传递函数表达式子. 2 求解 2.1 相关函数 状态空间表达式的传递函数用ss2tf函数来求解 函数原型 [b,a] = ss2tf(A,B,C,D, ...
- matlab clabel函数用法,CLabel的用法 | 学步园
DDX_Control(pDX, IDC_STATIC_CONNSTATE, m_labConnState); IDC_STATIC_CONNSTATE 是某静态控件的ID,设置这个静态控件的控制变 ...
- matlab radiogroup,RadioGroup和CheckBox的使用 | 学步园
1.布局文件: android:layout_width="fill_parent" android:layout_height="fill_parent" a ...
- matlab怎么计算行列式,Matlab 线性代数(一)–行列式与方程组求解 | 学步园
1. %用克莱姆法则求解方程组 clear n=input('方程个数=') A=input('系数矩阵A=') b=input('常数列向量b=') if((size(A)~=[n,n])|(siz ...
- 部分选主元matlab,部分选主元的Doolittle分解 | 学步园
步骤: 假设用紧凑格式的Doolittle法已经完成了第 r-1 (1<=r<=n) 步分解,第 r 步分解,首先在数组 A 的第 r 列主对角元以下(含主对角元) 选主元,具体步骤: 1 ...
- 用matlab对图像进行边缘填充,matlab中的图像边界填充函数 | 学步园
padarray 功能:填充图像或填充数组. 用法:B = padarray(A,padsize,padval,direction) A为输入图像,B为填充后的图像, padsize给出了给出了填充的 ...
- hsi和rgb的转换,以及hsi和rgb的补色变换 matlab代码
版权声明:<–本博客所有内容均为自己在学习工作中的总结.摘录等-- --转载请注明出处-- --如有侵权请联系删除–>https://blog.csdn.net/ai359005521/a ...
最新文章
- 如何实现对ELK各组件的监控?试试Metricbeat
- 零元学Expression Blend 4 ndash; Chapter 21 以实作案例学习MouseDragElementBehavior
- java 张量运算,博客 | Tensorflow_01_运算符与张量值
- jQuery之ajax的跨域获取数据
- 彩虹六号服务器显示,彩虹六号怎么看自己在什么服务器 | 手游网游页游攻略大全...
- 什么是spring_Spring 源码第三弹!EntityResolver 是个什么鬼?
- 1主5从mysql数据库_MySQL主从复制虽好,能完美解决数据库单点问题吗?
- linux系统平均价格,简单认识Linux系统平均负载
- CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔
- flash 音乐 html代码,用html为flash页面添加音乐
- mysql的建表语句_三种常用的MySQL建表语句
- 计算机数字模拟仿真软件,实时数字仿真系统
- 使用html制作一个网页
- 直播、录屏软件OBS Studio下载安装操作教程
- beetl模板使用场景_Beetl模板引擎入门教程
- PCB通孔类焊盘封装
- 51花样流水灯c语言程序,51单片机花样流水灯程序
- 经验分享 针式打印机经典案例分析
- arcgis人口空间化_基于遥感和GIS的人口数据空间化研究进展及案例分析
- 本周之后Win11 变成beta通道只能更新22000.176而没办法更新Dev的解决办法 your PC does not meet the hardware system
热门文章
- python中 for in 用法_python中for in的用法详解
- 机器学习--红酒质量检测分析(包含数据集,直接可用)
- python 人民币兑美元汇率_人民币汇率转换(python人民币和美元转换)
- 机器学习-准确率、灵敏度、特异度、PPV、NPV、F1计算方法
- 【Linux系统开发】Study210开发板刷安卓系统
- 金蝶凭证序时簿在哪_金蝶KIS旗舰版外购入库单序时簿界面没有凭证的按钮
- 图文并茂搭建STM32开发环境
- 计算机京东账户安全退出,京东账号如果提示存在风险该怎么解除?
- 【定制Android系统】Android O 修改吉字节为GB
- 沙雕动画资源素材大全/小白零基础快速入门沙雕动画/三天快速上手开始制作沙雕动画/