【数字图像处理matlab】RGB转HIS,HIS转RGB
【数字图像处理matlab】RGB转HIS,HIS转RGB
读入一张RGB图像,将其转换为HIS,再将HIS转换为RGB。
function F=color_processing(image)
%调用代码-----------------------------------------
%imageR=imread('flower.jpg');
%image=im2double(imageR);color_processing(image);
%------------------------------------------------%RGB->HIS变换,rgb2hsv()
%从三维数组中提取三幅分量图像
R1=image(:,:,1);
G1=image(:,:,2);
B1=image(:,:,3);
I=(R1+G1+B1)/3; %亮度分量,范围[0,1]
m=min(min(R1,G1),B1);
S=1-3*m./(R1+G1+B1); %饱和度分量,范围[0,1]
theta=acos(((R1-G1)+(R1-B1))./(2*((R1-G1).^2+((R1-B1).*(G1-B1))).^(1/2))); %弧度
H=theta; %色度分量,以角度表示,范围是[0,1](弧度除以2*pi后)
if B1>G1H=2*pi-theta;
end
if S==0H=0;
end
H=H/(2*pi);
Image1=cat(3,H,S,I);
subplot(1,3,1),imshow(image);
title('RGB原图')
subplot(1,3,2),imshow(Image1);
title('转换后的HSI图像')%HIS->RGB变换,Image1转为imdouble型H1=Image1(:,:,1)*2*pi; %弧度
S1=Image1(:,:,2);
I1=Image1(:,:,3);R1 = zeros(size(Image1, 1), size(Image1, 2));
G1= zeros(size(Image1, 1), size(Image1, 2));
B1 = zeros(size(Image1, 1), size(Image1, 2));i= find( (0 <= H1) & (H1 < 2*pi/3));
B1(i) = I1(i) .* (1 - S1(i));
R1(i) = I1(i) .* (1 + S1(i) .* cos(H1(i)) ./ cos(pi/3 - H1(i)));
G1(i) = 3*I1(i) - (R1(i) + B1(i)); i = find( (2*pi/3 <= H1) & (H1 < 4*pi/3) );
R1(i) = I1(i) .* (1 - S1(i));
G1(i) = I1(i) .* (1 + S1(i) .* cos(H1(i) - 2*pi/3) ./ cos(pi - H1(i)));
B1(i) = 3*I1(i) - (R1(i) + G1(i)); i = find( (4*pi/3 <= H1) & (H1 <= 2*pi));
G1(i) = I1(i) .* (1 - S1(i));
B1(i) = I1(i) .* (1 + S1(i) .* cos(H1(i) - 4*pi/3) ./cos(5*pi/3 - H1(i)));
R1(i) = 3*I1(i) - (G1(i) + B1(i)); Image2 = cat(3, R1, G1, B1);
Image2 = max(min(Image2, 1), 0);
subplot(1,3,3),imshow(Image2);
title('转换回的RGB图像') end
测试:
【数字图像处理matlab】RGB转HIS,HIS转RGB相关推荐
- 【数字图像处理matlab】(HSI变换融合算法)
[数字图像处理matlab](HSI变换融合算法) 输入一张高分辨率的全色影像HR,一张低分辨率的多光谱影像MS,采用HSI变换融合算法实现影像融合,其中RGB与HSI影像的相互转换调用自定义函数RG ...
- 《数字图像处理 MATLAB版》学习笔记
学习教材:<数字图像处理 MATLAB版>(第二版) 冈萨雷斯 学习过程中的图片代码和及我收集的一些关于数字图像处理的其他学习资料,需要的可以评论留下邮箱(需要购买专栏),加油 文章目录 ...
- 数字图像处理MATLAB学习笔记(五)
数字图像处理MATLAB学习笔记(五) Color Image Processing 1 Color Image Representation in MATLAB 这里不多说了,彩色图片在计算机中以R ...
- 数字图像处理MATLAB学习笔记(一)
数字图像处理MATLAB学习笔记(一) 灰度转换与空间滤波 本节主要使用Matlab语言进行灰度转换与空间滤波的使用 并对相关数学原理进行总结 1. Intensity Transformer Fun ...
- 【资源分享】数字图像处理MATLAB版冈萨雷斯+中文高清版+随书源码链接
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 1.数字图像处理MATLAB版冈萨雷斯+中文高清版 2.数字图像处理MATLAB版冈萨雷斯随书源码 1.数字图像处 ...
- [数字图像处理Matlab]任选一幅灰度图,自行编写程序,完成直方图均衡化。鼠鼠的数字图像处理实验要求:不能用MATLAB自带的histeq函数实现直方图均衡化
数学理论前提:见数字图像处理(第三版) 李俊山等编著 p50-53 1.利用imhist函数统计像素点个数 Im = imread("C:\Users\鼠鼠\Desktop\数字图像处理m ...
- 图像处理----入门资料,Matlab r2019最新版,r2008a,《数字图像处理》冈萨雷斯 第三版 《数字图像处理 Matlab 版》
研究生想研究的方向是图像处理,现在离开学还有四个月,希望能稍微入门吧.同时也希望通过博客的形式记录一下学习的进度,学习的心情.目前学习两周,安装了基本的软件,收集书籍,学习了灰度变换,空间滤波,频率滤 ...
- 数字图像处理matlab作业,数字图像处理matlab大作业
<数字图像处理matlab大作业>由会员分享,可在线阅读,更多相关<数字图像处理matlab大作业(23页珍藏版)>请在人人文库网上搜索. 1.几个图像处理实例,matlab ...
- 【数字图像处理matlab】(边界跟踪-光栅扫描法)
[数字图像处理matlab](边界跟踪-光栅扫描法) 调用Matlab自带图像测试,光栅扫描法实现边界跟踪. function coor = edge_search(I) %边缘跟踪 %输入:灰度图矩 ...
- 数字图像处理Matlab
前言:本文类似于学习笔记,所以有疑问或者有什么宝贵的建议欢迎在下方留言.(注:本文代码大部分可从<数字图像处理 第三版>中找到) 使用软件:MATLAB R2018a 参考资料:<数 ...
最新文章
- 如何在文件夹中运行cmd命令行
- 模型的可解释性:部分依赖图PDP和个体条件期望图ICE
- jQuery的UI框架 Liger UI
- 四、【SAP-PM模块】维护业务处理流程
- php composer内存不足,composer 安装插件提示内存不足等问题
- 抽象工厂模块在开发中的应用
- [vue] 父子组件间传值
- nano-pc-t1 4412 显示驱动分析
- 微型计算机突然断电什么信息全部都是,微型计算机的硬件组成阶段作业(函授2014春).doc...
- 安卓案例:利用下拉列表选择科目
- python编程(python和c相互调用)
- Linq实战 之 Linq to Sql及Entity Framework操作详解
- Winform基于UnityWebplayer封装用户控件以实现.unity3d文件相对路径(动态src)
- bootdo框架首页解析
- 奔图打印linux驱动下载,奔图P3405D打印机驱动下载
- 技术美术个人笔记(三)——各贴图格式
- 苹果x和xs买哪个好_苹果12哪个颜色销量销售好 iPhone12哪个颜色好看
- 唉~看看google搜索的两个关键字的结果吧
- 微信公众号 去除 “防欺诈盗号请勿支付或输入qq密码“ 提示
- 服务器运维技术-02 Linux基本使用
热门文章
- iscsi对oracle发起程序,windows_2008+Oracle_11g_R2_配置完整版
- GPRS远程开关 2 AIR202模块
- c语言求阶乘和的流程图_C语言:数据结构-栈与递归
- C语言计算阶乘及阶乘的和
- 工业机器人远程监控运维物联网解决方案
- python正则去空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...
- 用vs code 搭建stm32 开发环境(详细)
- 地球经纬度转换为unity球面坐标
- 阿里云服务器怎么购买才更划算(新手教程)
- hive函数 next_day