求解一段简单的MATLAB程序%将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)))./(

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:28:55
求解一段简单的MATLAB程序%将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)))./(

求解一段简单的MATLAB程序%将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)))./(
求解一段简单的MATLAB程序
%将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

求解一段简单的MATLAB程序%将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)))./(
程序没有错误啊,估计是你使用上的问题.
把上面代码保存为名字 rpgtohsi.m 的文件,放到我的文档--Matlab文件夹里(win7是库--文档--Matlab文件夹).假设你要处理的图片为E盘根目录下的001.jpg,就只要把语句F=imread(x)中的x换成 'e:\001.jpg’ 即可(注意有引号).启动Matlab在命令窗口输入rpgtohsi就可以运行了,输入1~7选择你想要的处理方式.