• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-06
  • 语言: Matlab
  • 标签: matlab  

资源简介

此函数用于将rgb图像转为hsi图像并显示出rgb图、灰度图、hsi图 ,输入:JPG或JPEG或BMP等一般图片名称(加后缀),输出:rgb图、灰度图、hsi图,返回值:hsi矩阵

资源截图

代码片段和文件信息

function HSI = rgbtohsi(filename)
%此函数用于将rgb图像转为hsi图像并显示出rgb图、灰度图、hsi图   %rgbtohsi(‘abcd.jpg‘)
%输入:JPG或JPEG或BMP等一般图片名称(加后缀)
%输出:rgb图、灰度图、hsi图
%返回值:hsi矩阵
imgrgb = imread(filename);  %读入RGB彩色图像
rgb = im2double(imgrgb);    %归一化rgb值,转为double型
r = rgb(::1);     %复制r矩阵
g = rgb(::2);     %复制g矩阵
b = rgb(::3);     %复制b矩阵
I = (r + b + g)/3;   %计算I值
temp1 = min(min(rg)b);  %计算rgb的最小值
temp2 = r + b + g;
temp2(temp2 == 0) = eps;   %eps是一个极小的数:2.2204e-16避免除数为零
S = 1 - 3.*temp1./temp2;  %计算θ
temp1 = ((r - g).^2 + (r - b).*(g - b));
theta = acos(temp1./(temp2 + eps));  %计算θ的角值
H = theta;
H(g < b) = 2*pi - H(gH = H/(2*pi);
H(S == 0) =0;       %当S为零时,H也为零
HSI = cat(3HSI); %HSI三个分量组合得到HSI图像
gry = rgb2gray(imgrgb);
%整个figure中有2个图是排成一行的,一共2行
subplot(221)image

评论

共有 条评论