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

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

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

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

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

% 读取图像
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图像');

运行结果如下:


http://www.niftyadmin.cn/n/5166176.html

相关文章

674. 最长连续递增序列 718. 最长重复子数组 1143.最长公共子序列 1035.不相交的线

674. 最长连续递增序列 题目: 给定一个未经排序的整数数组nums,找到最长且 连续递增的子序列,并返回该序列的长度。 dp数组含义: dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]。 递推公式: 怎么…

数组代码实现cpp

数组实现 #include<iostream> #include<string> using namespace std;// 数组实现 class Array{ public:int *mpArr; // 指向可扩容的数组的指针int mCap; // 数组的容量int mCur; // 数组的当前元素个数public:Array(int size 10): mCap(size), mCur(0){mpArr …

大型企业是否有必要进行数字化转型?_数据治理平台_光点科技

数字化转型是大型企业在现代商业环境中保持竞争力的关键。一开始我们要明确数字化转型指的是利用数字技术来改变企业的业务模式和企业文化&#xff0c;以提高效率和效益。对于大型企业而言&#xff0c;进行数字化转型有着多重必要性。 1.数字化转型可以帮助企业优化内部流程&am…

tomcat 部署web项目

第一步 首先要进入包含整个项目的文件夹&#xff0c;即项目主路径&#xff0c;下使用mvn clean package命令 第二步 执行命令过后&#xff0c;在该项目的target/out文件夹中会生成一个demo-1.0.war&#xff08;类似于这个的.war文件&#xff09; 第三步 将这个demo-1.0.wa…

【笔记】系统集成项目管理工程师-各管理输入输出整理

目录 一、整体管理 二、范围管理 三、进度管理 四、成本管理 五、质量管理 六、人力资源管理 七、干系人管理 八、风险管理 九、word 版本整理 十、PPT图版本管理 一、整体管理 1. 制订项目章程 2. 制订项目管理计划 3. 指导与管理项目工作 4. 监控项目工作 5. 实施…

十四、W5100S/W5500+RP2040树莓派Pico<NetBIOS>

文章目录 1 前言2 简介2 .1 什么是NetBIOS&#xff1f;2.2 NetBIOS的优点2.3 NetBIOS工作原理2.4 NetBIOS应用场景 3 WIZnet以太网芯片4 NetBIOS网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 随着…

easyscholar配置秘钥连接Zotero-style,更方便的了解文献!

如果你不知道什么是easyScholar,以及怎么安装easyScholar? 请参见文章 easyScholar 一、easyscholar配置秘钥 1.首先打开easyscholar插件&#xff0c;并登录 2.点击自定义数据集 3.依次点击 用户信息-开放接口 4.点击刷新 5.在Zoter中 编辑-首选项-高级-编辑器 6.点击…

springboot项目经验

本章记录springboot项目开发过程经验