使用matlab实现图像信号的色彩空间转换

利用matlab对图像信号进行读取,并对RGB空间进行转换,如转换到HSI空间等。

下面的这个代码是在使用了rgb2hsi()方法失败后,进行修改的。

rgb2hsi(img)这个方法可以将RGB图像转换为HIS图像;但是爆出了 Untitled5(line 5)hsi = rgb2hsi(img)这个错误。

查了下可能是因Matlab版本不支持rgb2hsi函数。Matlab版本较旧,所以就手动实现RGB到HSI的转换。

Matlab 复制代码
% 读取图像
img = imread('dog.jpg');

% 将RGB图像归一化到0到1之间
img = im2double(img);

% 分离RGB通道
R = img(:, :, 1);
G = img(:, :, 2);
B = img(:, :, 3);

% 计算色调(Hue)
numerator = 0.5 * ((R - G) + (R - B));
denominator = sqrt((R - G).^2 + (R - B).*(G - B));
theta = acos(numerator ./ (denominator + eps));
H = theta;
H(B > G) = 2*pi - H(B > G);
H = H / (2 * pi);

% 计算饱和度(Saturation)
S = 1 - 3 * min(min(R, G), B) ./ (R + G + B + eps);

% 计算亮度(Intensity)
I = (R + G + B) / 3;

% 合并HSI通道
hsi = cat(3, H, S, I);

% 显示原始图像和HSI图像
subplot(1, 2, 1);
imshow(img);
title('原始图像');
subplot(1, 2, 2);
imshow(hsi);
title('HSI图像');

运行结果如下:

相关推荐
开源技术3 分钟前
深入了解Turso,这个“用Rust重写的SQLite”
人工智能·python
初恋叫萱萱5 分钟前
构建高性能生成式AI应用:基于Rust Axum与蓝耘DeepSeek-V3.2大模型服务的全栈开发实战
开发语言·人工智能·rust
水如烟7 小时前
孤能子视角:“组织行为学–组织文化“
人工智能
大山同学7 小时前
图片补全-Context Encoder
人工智能·机器学习·计算机视觉
薛定谔的猫19827 小时前
十七、用 GPT2 中文对联模型实现经典上联自动对下联:
人工智能·深度学习·gpt2·大模型 训练 调优
壮Sir不壮8 小时前
2026年奇点:Clawdbot引爆个人AI代理
人工智能·ai·大模型·claude·clawdbot·moltbot·openclaw
PaperRed ai写作降重助手8 小时前
高性价比 AI 论文写作软件推荐:2026 年预算友好型
人工智能·aigc·论文·写作·ai写作·智能降重
玉梅小洋8 小时前
Claude Code 从入门到精通(七):Sub Agent 与 Skill 终极PK
人工智能·ai·大模型·ai编程·claude·ai工具
-嘟囔着拯救世界-8 小时前
【保姆级教程】Win11 下从零部署 Claude Code:本地环境配置 + VSCode 可视化界面全流程指南
人工智能·vscode·ai·编辑器·html5·ai编程·claude code
正见TrueView8 小时前
程一笑的价值选择:AI金玉其外,“收割”老人败絮其中
人工智能