《数字图像处理实验》word版

《数字图像处理实验》word版
《数字图像处理实验》word版

华南理工大学

《数字图像处理》课程实验报告

实验题目:实验1、数字图像读取及色彩、亮度对比度变化姓名:学号:

班级:组别:

合作者:

指导教师:

V=-0.30R-0.59G+0.89B

5.通过访问Y(亮度)通道,改变数字图像的亮度;

二、实验图像:

三、实验主要过程:

1、读入图像,分离RGB三个通道,结果如下:

代码如下:

% 读入图像并分离RGB,显示;

src = imread('sample1-1.bmp');

[r c d] = size(src);

R = src;

G = src;

B = src;

R(:,:,2) = zeros(r,c);

R(:,:,3) = zeros(r,c);

G(:,:,1) = zeros(r,c);

G(:,:,3) = zeros(r,c);

B(:,:,1) = zeros(r,c);

B(:,:,2) = zeros(r,c);

subplot(1,3,1);

imshow(R); title('R分量');

subplot(1,3,2);

imshow(G); title('G分量');

subplot(1,3,3);

imshow(B); title('B分量');

2、修改RGB值(反色),改变图像的色彩,结果如下:

代码如下:

% 修改RGB的值(这时采用了反色),改变图像的色彩;

R(:,:,1) = 255 - R(:,:,1); % 为了进行后面的实验,请注释此行G(:,:,2) = 255 - G(:,:,2); % 为了进行后面的实验,请注释此行B(:,:,3) = 255 - B(:,:,3); % 为了进行后面的实验,请注释此行subplot(2,3,1);

imshow(R); title('R分量反色');

subplot(2,3,2);

imshow(G); title('G分量反色');

subplot(2,3,3);

imshow(B); title('B分量反色');

subplot(2,3,4);

imshow(src); title('原图');

subplot(2,3,6);

imshow(R+G+B); title('反色');

3、将RGB转为YUV,结果如下:

代码如下:

R = double(R(:,:,1));

G = double(G(:,:,2));

B = double(B(:,:,3));

Y = 0.299*R + 0.587*G + 0.114*B;

U = -0.147*R - 0.289*G + 0.436*B;

V = 0.615*R - 0.515*G - 0.100*B;

subplot(2,3,1);

imshow(uint8(Y)); title('Y分量');

subplot(2,3,2);

imshow(uint8(U)); title('U分量');

subplot(2,3,3);

imshow(uint8(V)); title('V分量');

4、修改Y分量(这里除以1.5),重新由YUV转为RGB,结果如下:

代码如下:

Y = Y/1.5;

R = Y + 1.140*V;

G = Y - 0.395*U - 0.581*V;

B = Y + 2.032*U;

rgb(:,:,1) = uint8(R(:,:));

rgb(:,:,2) = uint8(G(:,:));

rgb(:,:,3) = uint8(B(:,:));

subplot(2,3,4);

imshow(rgb); title('修改亮度');

华南理工大学

《数字图像处理》课程实验报告

实验题目:实验2、数字图像空间域增强

姓名:学号:

班级:组别:

合作者:

指导教师:

三、实验主要过程:

1、对源图像进行标准化,使像素的RGB值的范围为0到1

代码如下:

src = imread('sample2-1.bmp');

src = double(src);

src = src / 256.0;

2、对源图像的各像素,采用不同的珈玛值进行校正,并显示比较,结果如下:

代码如下:

gamma0p4 = uint8(src.^(1/0.4).*256.0);

华南理工大学

《数字图像处理》课程实验报告

实验题目:实验3、数字图像的噪声去除

姓名:学号:

班级:组别:

合作者:

指导教师:

源图像加噪声后的图像

三、实验主要过程:

1、对源图像进行3*3的均值滤波,结果如下:

代码如下:

src = imread('sample3-2.bmp');

[r,c] = size(src);

output = src;

n = 3; k = (n-1)/2;

for row = 1+k:r-k

for column = 1+k:c-k

m = src(row-k:row+k,column-k:column+k);

temp = sum(sum(m,1),2)*(1/n/n);

output(row, column) = uint8(temp);

end

end

imshow(output);

在本代码中,边缘并没有被处理,而是直接采用源图像的对应值。

2、对源图像进行3*3的中值滤波,结果如下:

相关主题
相关文档
最新文档