数字图像处理实验四

上传人:宝路 文档编号:16011786 上传时间:2017-11-06 格式:DOC 页数:4 大小:554.82KB
返回 下载 相关 举报
数字图像处理实验四_第1页
第1页 / 共4页
数字图像处理实验四_第2页
第2页 / 共4页
数字图像处理实验四_第3页
第3页 / 共4页
数字图像处理实验四_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数字图像处理实验四》由会员分享,可在线阅读,更多相关《数字图像处理实验四(4页珍藏版)》请在金锄头文库上搜索。

1、1实验四.多彩图像处理一、实验类型验证性实验 二、实验目的 1. 掌握多彩图像处理的方法。 2. 掌握多彩图像的基本原理。 三、实验设备安装有 MATLAB 软件的计算机 四、实验过程1.从 RGB 转换到 HIS 的一个 M 函数函数 his=rgb2hsi(rgb)rgb=imread(b.jpg); %将 b.jpg 图像读入 matlab 环境imshow(rgb); %显示图像rgb=im2double(rgb); %把图像数据类型转换为双精度浮点类型r=rgb(:,:,1); %提取红色分量g=rgb(:,:,2); %提取绿色分量b=rgb(:,:,3); %提取蓝色分量num=

2、0.5*(r-g)+(r-b);den=sqrt(r-g).2+(r-b).*(g-b);theta=acos(num./(den+eps);H=theta; %获取点与 HSI 空间的红色轴之间的夹角,得到 H 分量H(bg)=2*pi-H(bg); 当 bg 时取 H 为夹角的补角H=H/(2*pi); 将 H 除以 360,色度归化到范围0,1num=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); 利用级联操作符 c

3、at 将分量图像合成彩色图像figure;imshow(hsi); %控制画图窗口数量并显示图像图像显示:22.从 HIS转换到 RGB的一个M函数函数 rgb=hsi2rgb(hsi)function rgb=hsi2rgb(hsi);hsi=imread(b.jpg); %将b.jpg图像读入matlab环境imshow(hsi); %显示图像rgb=hsi2rgb(hsi); %将HIS 转换到RGB格式H=hsi(:,:,1)*2*pi; %将H乘以360 ,色度还原到范围0,360S=hsi(:,:,2); %提取色度分量图像I=hsi(:,:,3); %提取饱和度分量图像R=zer

4、os(size(hsi,1),size(hsi,2); %生成0 元素亮度矩阵G=zeros(size(hsi,1),size(hsi,2); %生成0 元素亮度矩阵B=zeros(size(hsi,1),size(hsi,2); %生成0 元素饱和度矩阵idx=find(0=H)&(H2*pi/3); %判断H是否为RG区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); %获取RG区RGB分量idx=find(2*pi/3

5、=H)&(H4*pi/3); %判断H 是否为GB区R(idx)=I(idx).*(1-S(idx); %判断H 是否为 BR区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); %获取GB区RGB分量idx=find(4*pi/3=H)&(H=2*pi);R(idx)=I(idx).*(1-S(idx);G(idx)=I(idx).*(1+S(idx).*cos(H(idx)-4*pi/3)./cos(5*pi/3-H(idx);B(idx)=3*I(idx)-

6、(B(idx)+G(idx); %获取BR区RGB分量rgb=cat(3,R,G,B); %利用级联操作符cat将分量图像合成彩色图像rgb=max(min(rgb,1),0);3figure,imshow(rgb); %控制画图窗口数量并显示图像-显示不了图!-3.RGB 彩色图像分割首先,我们获得待分割彩色区域的样本。一种简单地获得感兴趣区域的方法是使用在 4.2.4 节描述的roipoly 函数,这个函数可产生能交互选择的区域的二值模板。这样,令 f 表示图 6-30(a)中的彩色图像,图 6-30(b)中的区域便可用下面命令得到:f=imread(b.jpg);mask=roipoly

7、(f); %选择图像中的多边形区域red=immultiply(mask,f(:,:,1); %函数实现两幅图像相乘green=immultiply(mask,f(:,:,2); %函数实现两幅图像相乘blue=immultiply(mask,f(:,:,3); %函数实现两幅图像相乘g=cat(3,red,green,blue); %连接三个数组figure,imshow(g); %控制画图窗口数量并显示图像得到图像,并使用函数 roipoly 交互地选取自己所需要的区域其中,模板是用 roipoly 产生的二值图像(和 f 的大小相同)。下一步,我们计算感兴趣区域内点的平均矢量和协方差矩阵

8、。但是首先,ROI 区域内点的坐标必须提取出来:M,N,K=size(g);I=reshape(g,M*N,3); %把指定的矩阵改变形状,但是元素个数不变idx=find(mask); % 返回 mask 元素的所在位置I=double(I(idx,1:3); %图像数组转换成 double 精度类型C,m=covmatrix(I); %计算向量族的协方差矩阵第 2 条语句重新排列 g 中的彩色像素,就像 I 的行一样,并且第 3 条语句找出彩色像素的行索引,它们不是黑的。这些都不是图 6-30(b)中模板图像的背景像素。4最后,预先要做的计算是决定 T 值。好的开始是让 T 变为彩色分量标准差的倍数。C 的主对角线包括 RGB分量的方差,所以我们必须抽取这些元素并计算它们的平方根:d=diag(C);sd=sqrt(d)22.0643 24.2442 16.1806sd 的第 1 个元素是 ROI 中彩色像素的红色分量的标准差,并且对另外两个分量也是相似的。现在进行图像分割,以 T 的 25 倍值作为阈值,这个值是最大标准差的近似:T=25 ,T=50,T=75,T=100。针对函数的euclidean选项,采用 T=25:E25=colorseg(euclidean,f,25,m); %进行图像分割-显示不了图!-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号