中国地质大学数字图像处理报告.

  • 格式:doc
  • 大小:6.15 MB
  • 文档页数:33

下载文档原格式

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

中国地质大学(武汉) 数字图像处理实习报告书

姓名:

专业:

班级:

学号:

指导老师:

第1题:

实验内容及目的:

根据灰度图象得到一副彩色图像(变换函数自定),分别显示1幅彩色图象的R ,G ,B 分量(每个分量用8 bit 表示),和这幅彩色图象的H ,S ,I 分量(每个分量也各用8 bit 表示)。

通过本题学会灰度图和彩色图之间的转换,了解RGB 空间和HIS 空间之间的关系。 实验原理:

图像由若干个像素点组成。灰度图像矩阵的每个元素对应一个灰度值,伪彩色图像矩阵的每个元素对应R 、G 、B 分量的值。将一幅灰度图变为一幅彩色图相当于在灰度值与RGB 分量之间建立函数关系。HIS 彩色空间由H (色调)、S (饱和度)、I (辉度)分量构成。RGB 分量和HIS 分量的对应关系如下:

根据对应函数将RGB 分量转化为HIS 分量并显示,即可得到所需的HIS 分量图。 思路分析:

用MA TLAB 处理图像首先要将灰度图像读入。读入后将图像矩阵中的元素转化为uint8类型处理。将灰度图变为彩色图就是在灰度值与R 、G 、B 分量之间建立关系,所以要先生成R 、G 、B 分量的矩阵,这就要知道原灰度图的大小(用size ()函数实现)。建立R 、G 、B 分量的矩阵后,采用循环根据原图像的灰度值对其进行赋值。最后用cat ()函数合并三个分量得到生成的彩色图。

读入彩色图像并转为uint8类型,根据彩色图像的构成将R 、G 、B 分量从图像矩阵中分量出来并显示。

显示图像的HIS 分量时,首先将图像转化为double 类型处理。然后分离出RGB 分量,根据RGB 分量和HIS 分量之间的转化关系得到HIS 分量,此时的HIS 分量时double 类型,所以将这三个分量合并后转化为8bit 类型。将转化后的矩阵再分离出HIS 分量即可得到8bit ⎩⎨⎧≤-≥=--+--+-=-=++=-.

,2;, ],))(()()]()[(21[cos );,,min(31 ;3/)(21B G B G H B G B R G R B R G R B G R I S B G R I θπθθ

类型的HIS分量图。

代码:

clear all;

close all;

X=imread('fudiao.jpg'); %读入图像

subplot(121);

imshow(X);title('灰度图像'); %显示原始图像

X=im2uint8(X); %将图像转化为int8类型[M,N]=size(X); %求得矩阵的维度

%生成RGB矩阵

R=zeros(M,N);

G=zeros(M,N);

B=zeros(M,N);

%建立灰度值与RGB分量之间的变换关系

for p=1:M

for k=1:N

if(X(p,k)<128)

R(p,k)=128;

elseif(X(p,k)<192)

R(p,k)=4*X(p,k)-511;

else

R(p,k)=255;

end

if(X(p,k)<64)

B(p,k)=255;

elseif(X(p,k)<128)

B(p,k)=511-4*X(p,k);

else

B(p,k)=0;

end

if(X(p,k)<64)

G(p,k)=4*X(p,k);

elseif(X(p,k)<192)

G(p,k)=255;

else

G(p,k)=1023-4*X(p,k);

end

end

end

Z=cat(3,R,G,B); %合并三个分量

Subplot(122);

imshow(Z); %显示伪彩色图

title('伪彩色图像');

%%%%%%%%%%%%%

%显示一幅图的RGB分量和HIS分量

clear all;

close all;

X=imread('tower.jpg');

X=im2uint8(X); %将图像转化为int8类型figure(1);

title('原始图像'); %显示原始图像

imshow(X);

XR=X(:,:,1); %分离出RGB分量

XG=X(:,:,2);

XB=X(:,:,3);

figure(2);

subplot(2,3,1);

imshow(XR);

%显示RGB分量图

title('R分量');

subplot(2,3,2);

imshow(XG);

title('G分量');

subplot(2,3,3);

imshow(XB);

title('B分量');

%HSI分量

X=im2double(X);

XR=X(:,:,1);

XG=X(:,:,2);

XB=X(:,:,3);

%根据RGB分量和HIS分量间的变换关系求得HIS分量num=0.5*((XR-XG)+(XR-XB));

den=sqrt((XR-XG).^2+(XR-XB).*(XG-XB)); theta=acos(num./(den+eps));

if(XG>=XB)

H=theta;

else

H=2*pi-theta;

end

I=(XR+XG+XB)./3;

num=min(min(XR,XG),XB);

den=XR+XG+XB;

den(den==0)=eps;

S=1-3.*num./den;

M=cat(3,H,S,I);%合并三个分量

M=im2uint8(M);%将图像转化为8bit类型