东北大学matlab计算机图像处理实验报告.docx

上传人:b****2 文档编号:1820974 上传时间:2022-10-24 格式:DOCX 页数:21 大小:1.69MB
下载 相关 举报
东北大学matlab计算机图像处理实验报告.docx_第1页
第1页 / 共21页
东北大学matlab计算机图像处理实验报告.docx_第2页
第2页 / 共21页
东北大学matlab计算机图像处理实验报告.docx_第3页
第3页 / 共21页
东北大学matlab计算机图像处理实验报告.docx_第4页
第4页 / 共21页
东北大学matlab计算机图像处理实验报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

东北大学matlab计算机图像处理实验报告.docx

《东北大学matlab计算机图像处理实验报告.docx》由会员分享,可在线阅读,更多相关《东北大学matlab计算机图像处理实验报告.docx(21页珍藏版)》请在冰豆网上搜索。

东北大学matlab计算机图像处理实验报告.docx

东北大学matlab计算机图像处理实验报告

 

计算机图像处理实验报告

 

 

学院:

信息学院

班级:

姓名:

学号:

 

实验内容:

数字图像处理

1、应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;

(1)、显示一副真彩RGB图像

代码:

I=imread('mikasa.jpg');

>>imshow(I);

效果:

(2)、RGB转灰度图像

代码:

graycat=rgb2gray(I);

>>subplot(1,2,1);

>>subimage(I);

>>subplot(1,2,2);

>>subimage(graycat);

效果:

(3)、RGB转索引图像

代码:

[indcat,map]=rgb2ind(I,0.7);

>>subplot(1,2,1);

>>subimage(I);

>>subplot(1,2,2);

>>subimage(indcat,map);

效果:

(4)、索引图像转RGB

代码:

I1=ind2rgb(indcat,map);

>>subplot(1,2,1);

>>subimage(indcat,map);

>>subplot(1,2,2);

>>subimage(I1);

效果:

(5)、索引转灰度图像

代码:

i2gcat=ind2gray(indcat,map);

>>subplot(1,2,1);

>>subimage(indcat,map);

>>subplot(1,2,2);

>>subimage(i2gcat);

效果:

(6)、灰度转索引图像

代码:

[g2icat,map]=gray2ind(graycat,64);

>>subplot(1,2,1);

>>subimage(graycat);

>>subplot(1,2,2);

>>subimage(g2icat,map);

效果:

(7)、RGB转二值图像

代码:

r2bwcat=im2bw(I,0.5);

>>subplot(1,2,1);

>>subimage(I);

>>subplot(1,2,2);

>>subimage(r2bwcat);

效果:

(8)灰度转二值图像

代码:

g2bwcat=im2bw(graycat,0.5);

subplot(1,2,1);

>>subimage(graycat);

>>subplot(1,2,2);

>>subimage(g2bwcat);

效果:

(9)、索引转二值图像

代码:

>>i2bwcat=im2bw(indcat,map,0.7);

>>subplot(1,2,1);

>>subimage(indcat,map);

>>subplot(1,2,2);

>>subimage(i2bwcat);

效果:

2、应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。

然后将它们进行逆变换,观察逆变换后的图像;

(1)傅里叶正变换

代码:

F=fft2(graycat);

>>subplot(1,2,1);

subimage(graycat);

>>subplot(1,2,2);

>>subimage(log(abs(F)),[3,10]);

效果:

(2)傅里叶反变换

代码:

IF=ifft2(F);

>>subplot(1,2,1);

>>subimage(log(abs(F)),[3,10]);

>>subplot(1,2,2);

subimage(uint8(IF));

效果:

(3)DCT变换

代码:

B=dct2(graycat);

>>subplot(1,2,1);

>>subimage(graycat);

>>subplot(1,2,2);

>>subimage(log(abs(B)),[3,5]);

效果:

(4)iDCT变换

代码:

iB=idct2(B);

>>subplot(1,2,1);

>>subimage(log(abs(B)),[3,5]);

>>subplot(1,2,2);

>>subimage(uint8(iB));

效果:

 

3.应用MATLAB语言编程来实现一幅图像的增强。

(1)取一幅灰度图像,对其进行线性点运算,要求:

要求线性函数为Y=aX+b,

(a,b)分别取(1.5,1.2)、(0.7,1.2),分析变化后图像,并分析直方图。

代码:

graycat=double(graycat);

>>graycat1=1.5*graycat+1.2;

>>subplot(2,2,1);

>>subimage(uint8(graycat));

>>subplot(2,2,2);

>>imhist(uint8(graycat));

>>subplot(2,2,3);

>>subimage(uint8(graycat1));

>>subplot(2,2,4);

>>imhist(uint8(graycat1));

效果:

代码2:

graycat=double(graycat);

>>graycat1=0.7*graycat+1.2;

>>subplot(2,2,1);

>>subimage(uint8(graycat));

>>subplot(2,2,2);

>>imhist(uint8(graycat));

>>subplot(2,2,3);

>>subimage(uint8(graycat1));

>>subplot(2,2,4);

>>imhist(uint8(graycat1));

效果:

分析:

a=0.7时,图像对比度减小,输出灰度值范围减小

a=1.5时,图像对比度增大,输出灰度值范围增大

(2)取一幅灰度图像,对其进行直方图均衡化处理,再对其进行规定化处理,并对结果进行分析。

代码:

graycat=uint8(graycat);

>>eqcat=histeq(graycat);

>>subplot(2,2,1);

>>subimage(graycat);

>>subplot(2,2,2);

>>imhist(graycat);

>>subplot(2,2,3);

>>subimage(eqcat);

>>subplot(2,2,4);

>>imhist(eqcat);

效果:

规定化代码:

hgram=50:

2:

250;

speciacat=histeq(graycat,hgram);

>>subplot(2,2,1);subimage(graycat);

>>subplot(2,2,2);imhist(graycat);

>>subplot(2,2,3);subimage(speciacat);

>>subplot(2,2,4);imhist(speciacat);

效果:

分析:

图像均衡化将一已知灰度概率密度分布的图像经过某种变换,变成一幅具有均衡灰度概率密度分布的新图像,其扩展了象元取值的动态范围,从而达到增强图像整体对比度。

直方图规定化能自动增强整个图像的对比度,但具体效果不容易控制,处理结果总是得到全局的均衡化直方图。

思考题:

如果将一幅图像进行一次直方图均衡化处理后,再进行一次直方图均衡化处理,结果会发生变化吗?

观察两次均衡化的直方图是否一样。

答:

A=imread('mikasa.jpg');

B=rgb2gray(A);

I=histeq(B);%第一次均衡化

I1=histeq(I);%第二次均衡化

subplot(121);

imshow(I1);

subplot(122);

imhist(I1)

从图可知2次结果相同,先直方图均衡了,就相当于所有的灰度级上的像素点数目相同,无论你再进行多少次直方图均衡,他始终都不再变化,因为第一次就已经均衡了。

(3)取一幅灰度图像,加入噪声后对其进行平滑滤波(均值滤波、中值滤波),并观察不同滤波方式下的效果。

代码:

noisecat=imnoise(graycat,'salt&pepper');

avecat=filter2(fspecial('average',3),noisecat)/255;

>>medcat=medfilt2(noisecat,[3,3]);

>>subplot(2,2,1);subimage(graycat);title('原图');

>>subplot(2,2,2);subimage(noisecat);title('加噪声图');

>>subplot(2,2,3);subimage(avecat);title('均值平滑图');

>>subplot(2,2,4);subimage(medcat);title('中值滤波图');

效果:

 

分析:

均值滤波效果与所使用领域半径大小有关,半径越大,像素点越多,信噪比提高越大,平衡效果越好,但是平滑图像的模糊程度越大。

中值滤波时一种非线性滤波,可以克服线性滤波所带来的图像细节模糊,对滤波脉冲干扰及颗粒噪声最有效。

(4)取一幅灰度图像,采用不同的算子对其进行边缘锐化,并分析结果。

代码:

sobelcat=filter2(fspecial('sobel'),graycat);

prewittcat=filter2(fspecial('prewitt'),graycat);

laplaciancat=filter2(fspecial('laplacian'),graycat);

subplot(2,2,1);subimage(graycat);title('原图');

subplot(2,2,2);subimage(sobelcat);title('sobel猫');

subplot(2,2,3);subimage(prewittcat);title('prewitt猫');

subplot(2,2,4);subimage(laplaciancat);title('laplacian猫');

效果:

分析:

sobel算子:

对称的一阶差分,对中心加权具有一定的平滑作用

Prewitt算子:

一种一阶微分算子的边缘检测,利用像素点上下,左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用

Laplacian算子:

二次微分算子,满足不同走向的图像边缘锐化要求,对噪声的增强作用较弱,一半用它进行边缘增强时,有必要将图像先进行平滑处理。

思考题:

为了达到边缘锐化的反差增强效果,实际应用中将高频增强和直方图均衡化结合起来使用,这两个操作的次序能互换吗?

效果一样吗?

答:

I=imread('mikasa.jpg');

I=rgb2gray(I);

subplot(241),imshow(I);title('原始图像');

I1=[0,-1,0;-1,5,-1;0,-1,0];

I3=imfilter(I,I1);

subplot(242),imshow(uint8(I3));title('拉普拉斯算子锐化图像');

h=ones(size(I3));

[f1,f2]=freqspace(size(I3),'meshgrid');

r=sqrt(f1.^2+f2.^2);

h(r<0.3)=0;

Y=fft2(double(I3));

Y=fftshift(Y);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1