数字图像处理_实验报告书(八)彩色图像处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rgb=cat(3,rgb_R,rgb_G,rgb_B);
figure,imshow(rgb),title('RGB彩色图像');
截图:
(2)编写MATLAB程序,将一彩色图像从RGB空间转换为HIS空间,并观察其效果。

如例9.2所示。

程序:
rgb=imread('LenaRGB.bmp');
figure,imshow(rgb);
rgb1=im2double(rgb);
r=rgb1(:,:,1);
g=rgb1(:,:,2);
b=rgb1(:,:,3);
I=(r+g+b)/3
figure,imshow(I);
tmp1=min(min(r,g),b);
tmp2=r+g+b;
tmp2(tmp2==0)=eps;
S=1-3.*tmp1./tmp2;
figure,imshow(S);
tmp1=0.5*((r-g)+(r-b));
tmp2=sqrt((r-g).^2+(r-b).*(g-b));
theta=acos(tmp1./(tmp2+eps));
H=theta;
H(b>g)=2*pi-H(b>g);
H=H/(2*pi);
H(S==0)=0;
figure,imshow(H);
截图:
(3)编写MATLAB程序,将一彩色图像在RGB空间进行彩色分割,并观察其效果。

如例9.11所示。

程序:
rgb=imread('LenaRGB.bmp');
figure,imshow(rgb);
rgb1=im2double(rgb);
r=rgb1(:,:,1);
figure,imshow(r);
g=rgb1(:,:,2);
figure,imshow(g);
b=rgb1(:,:,3);
figure,imshow(b);
r1=r;
r1_u=mean(mean(r1(:)));
[m,n]=size(r1);
sd1=0.0;
for i=1:m
for j=1:n
sd1= sd1+(r1(i,j)-r1_u)*(r1(i,j)-r1_u);
end
end
r1_d=sqrt(sd1/(m*n));
r2=zeros(size(rgb1,1),size(rgb1,2));
ind=find((r>r1_u-1.25*r1_d)&(r<r1_u+1.25*r1_d));
r2(ind)=1;
figure,imshow(r2);
截图:
(4)编写MATLAB程序,将一彩色图像在向量空间进行边缘检测,并观察其效果。

如例9.12所示。

程序:
rgb=imread('LenaRGB.bmp');
imshow(rgb);
sob=fspecial('sobel');
Rx=imfilter(double(rgb(:,:,1)),sob,'replicate');
Ry=imfilter(double(rgb(:,:,1)),sob','replicate');
6、实验体会
通过本次实验,了解彩色空间的基本概念及转换原理,并且熟悉了MATLAB中彩色图像的表示方法,使用MATLAB函数实现各类彩色空间和图像类型的转换。

相关文档
最新文档