版权声明:<–本博客所有内容均为自己在学习工作中的总结、摘录等-- --转载请注明出处-- --如有侵权请联系删除–>https://blog.csdn.net/ai359005521/article/details/90246016

如果有用的话帮忙点个赞就好
rgb转为hsi的代码

function hsi = RGB2HSI(rgb)
rgb = im2double(rgb);
r = rgb(:, :, 1);
g = rgb(:, :, 2);
b = rgb(:, :, 3); num = 0.5*((r - g) + (r - b));
den = sqrt((r - g).^2 + (r - b).*(g - b));
theta = acos(num./(den + eps)); H = theta;
H(b > g) = 2*pi - H(b > g);
H = H/(2*pi); num = min(min(r, g), b);
den = r + g + b;
den(den == 0) = eps;
S = 1 - 3.* num./den; H(S == 0) = 0; I = (r + g + b)/3; hsi = cat(3, H, S, I);

hsi转为rgb的代码

function rgb = HSI2RGB(hsi)
H = hsi(:, :, 1) * 2 * pi;
S = hsi(:, :, 2);
I = hsi(:, :, 3); R = zeros(size(hsi, 1), size(hsi, 2));
G = zeros(size(hsi, 1), size(hsi, 2));
B = zeros(size(hsi, 1), size(hsi, 2)); idx = find( (0 <= H) & (H < 2*pi/3));
B(idx) = I(idx) .* (1 - S(idx));
R(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx)) ./ cos(pi/3 - H(idx)));
G(idx) = 3*I(idx) - (R(idx) + B(idx)); idx = find( (2*pi/3 <= H) & (H < 4*pi/3) );
R(idx) = I(idx) .* (1 - S(idx));
G(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx) - 2*pi/3) ./ cos(pi - H(idx)));
B(idx) = 3*I(idx) - (R(idx) + G(idx)); idx = find( (4*pi/3 <= H) & (H <= 2*pi));
G(idx) = I(idx) .* (1 - S(idx));
B(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx) - 4*pi/3) ./cos(5*pi/3 - H(idx)));
R(idx) = 3*I(idx) - (G(idx) + B(idx)); rgb = cat(3, R, G, B);
rgb = max(min(rgb, 1), 0);

rgb补色和hsi补色的代码

x = imread('d:/12.tif');
hsi = RGB2HSI(x);
rgb_buse = 255 - x;
x_h = hsi(:,:,1);           %提取红色分量的矩阵
x_s = hsi(:,:,2);           %提取绿色分量的矩阵
x_i = hsi(:,:,3);           %提取蓝色分量的矩阵
% zero = zeros(x);  %初始化与图像大小相同的通道为一的零矩阵
x_h_1 = x_h;
x_s_1 = x_s;
x_i_1 = 1-x_i;
[M,N]=size(x_h_1);
for i = 1:Mfor j =1:Nif(x_h_1(i,j)<=0.5)x_h_1(i,j)=0.5+x_h_1(i,j);elsex_h_1(i,j)=-0.5+x_h_1(i,j);end%         I2(i,j) = I(i,j);  %对图像进行填充end
endhsi_buse = cat(3,x_h_1,x_s_1,x_i_1); %蓝色分量图hsi_buse_rgb = HSI2RGB(hsi_buse);
subplot(1,2,1),imshow(rgb_buse),title('Red component');
subplot(1,2,2),imshow(hsi_buse_rgb),title('Green component')

hsi和rgb的转换,以及hsi和rgb的补色变换 matlab代码相关推荐

  1. 一幅RGB彩色原图和其三个分量的显示,RGB图转换成HSI的显示

    数字图形处理实验记录 实验一 :一幅RGB彩色原图和其三个分量的显示,RGB图转换成HSI的显示 转换原理:采用圆锥模型公式 测试步骤: Matlab转化函数: function HSI = RGB2 ...

  2. rgb hsl转换_python中的rgb hsl转换

    rgb hsl转换 The most common ways of encoding colour values are RGB (red, green and blue) and HSL (hue, ...

  3. 【颜色空间转换大集合】RGB到YIQ,RGB到HSI和HSI到RGB,RGB到YcbCr,RGB到XYZ颜色转换matlab代码的Demo,含详细的解释

    废话不说,先上图, 实现方式:matlab 实现功能: 实验目标 了解图像颜色空间的转换关系. 了解图像的文件结构. 实验内容 完成如下颜色空间的转换.(4 Points) RGB -> YIQ ...

  4. 【RGB=HSI】单片机控制RGB单灯与HSI互转算法

    最近在做一个RGB补光灯的小玩意儿,项目上有一个OLED屏幕显示当前灯光的HSI参数,对于HSI我是完全陌生的,由于时间紧任务重,我也没想过去百度一下HSI是个啥,直接拿着样品测试了一组参数,自己去演 ...

  5. 色彩空间与色彩模型 RGB/CMYK/YCbCr/HSB/HSI/HSV

    色彩空间与色彩模型都是一种用数值表示颜色的数学模型. 其中色彩空间侧重于色彩的标识,色彩模型侧重色彩的生成,但没有任何一种模型可以解释所有的色彩问题. 从面对对象主要分为两大类模型:面对硬件设备的色彩 ...

  6. RGB转HSL、HSI

    RGB<->(HSL) RGB→HSL的算法描述 步骤1: 把RGB值转换成[0,1]中数值 例:R=0.83, G=0.07, B=0.07 步骤2: 找出R, G和B中的最大值 本例中 ...

  7. 【DSP开发】【VS开发】YUV与RGB格式转换

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...

  8. GPU 实现 RGB -- YUV 转换 (OpenGL)

    GPU 实现 RGB -- YUV 转换 前言 RGB --> YUV 转换的公式是现成的,直接在 CPU 端转换的话,只需要遍历每个像素,得到新的 YUV 值,根据其内存分布规律,合理安排分布 ...

  9. 使用Opencv将RGB颜色空间转换到HSV颜色空间/灰度图

    一. 使用cvCvtColor函数将RGB颜色空间转换到HSV颜色空间 所需函数: 1.cvCvtColor 函数功能:颜色空间转换 函数原型: void cvCvtColor( const CvAr ...

最新文章

  1. 软件测试人员用python_【答知友问】软件测试人员能用python做哪些事情?
  2. android封装多肽,深度探索C++对象模型之(四)...-Android.animation cts fail-Rails helper_169IT.COM...
  3. CentOS下创建配置RAID1
  4. 屏幕录像专家详细安装教程
  5. SAP云平台Extension Factory和微软Azure上的Lambda Function
  6. FFMpeg中apiexample.c例子分析——解码分析
  7. php设计模式之责任链模式
  8. python描述符与实例属性_Python 中的属性访问与描述符
  9. android 7.1 支持哪些 cpu,锤子新机坚果Pro配置放出:骁龙626处理器、Android 7.1.1系统...
  10. 前端周刊第58期:送你 3 道面试题
  11. 苹果手机如何减少后台流量
  12. 在inDesign软件中如何覆盖母版页项目?
  13. 苹果 / Apple iCloud 教育版 200GB 云盘账号自助注册教程
  14. Windows系统,文件和文件夹命名规则
  15. 最低报酬率计算机公式,股票报酬率计算公式
  16. html5 img圆角,用 CSS3 给 图片添加圆角
  17. 锆石FPGA---verlog语法篇
  18. 3D数据基础——向量介绍与3D向量类的实现
  19. IDEA中 Maven name group、artifact、package区别
  20. Uber vs. Lyft

热门文章

  1. 威联通QNAP使用Container进行docker安装Tranmission并替换UI
  2. 前端对接微信分享功能完全指南
  3. 二维码会被人类扫完吗?| 你问鹅答
  4. Serializable序列化中serialVersionUId的作用
  5. 2023年全国最新保安员精选真题及答案18
  6. 对favicon进行base64 编码?
  7. Allegro加铜皮无法避让走线和孔
  8. 十步教你学会Sunny-Ngrok内网穿透使用
  9. cookie注销的几种方法与注意事项
  10. discuz二次开发常用技术手册代码