数字图像处理实习作业03.docx
《数字图像处理实习作业03.docx》由会员分享,可在线阅读,更多相关《数字图像处理实习作业03.docx(19页珍藏版)》请在冰豆网上搜索。
数字图像处理实习作业03
数字图像处理作业
报告编号:
03
课程编号:
姓名:
赵十璧
起始日期:
2012-11-15
截止日期:
2012-11-21
一、概要
本次作业用到了soble算子和拉普拉斯算子对图像进行锐化处理,对矩阵求了其模值和其梯度场,对图像求了其轮廓图、梯度场图
和3D网格图,还有灰度值分布图。
2、基本原理
锐化处理的主要目的是突出图像中的细节或增强被模糊了的细节和边缘,主要用到的是一阶和二阶微分的细节锐化滤波器。
通过比较一阶微分处理和二阶微分处理的响应,可以得出:
(1)一阶微分处理通常产生较宽的边缘;
(2)二阶微分处理对细节有较强的响应,如细线和孤立点;(3)一阶微分处理一般对灰度阶梯有较强的响应;(4)二阶微分处理对灰度阶梯变化产生双响应。
还应注意,二阶微分在图像中灰度值变化相似时,对线的响应比对阶梯的强,且点比线响应强。
基于二阶微分的图像增强—拉普拉斯算子:
最简单的各向同性微分算子是拉普拉斯算子,一个二元图像函数f(x,y)的拉普拉斯变换定义为:
基于一阶微分的图像增强----梯度法:
对于f(x,y),在其坐标(x,y)上的梯度是通过二维列向量定义的:
模值:
3、操作结果
Task1
对x、y求偏导分别得到:
模值:
梯度场:
图1-1梯度场
Task2
图2-1原图像的轮廓图
图2-2原图像的梯度图
图2-3原图像的3D网格图
2-4加噪声后图像的轮廓图
2-5加噪声后图像的梯度图
2-6加噪声后图像的3D网格图
Task3
原矩阵用拉普拉斯算子处理后得到:
Task4
用拉普拉斯算子处理原图像后,取处理后图像的第一行至第九行,第一列至第九列的灰度值显示:
Task5
均值滤波前后的图像对比
(a)原图像(b)滤波后的图像
图5-1均值滤波前后的图像对比(lena_frag)
用Laplacian滤波进行处理得到的图像对比
图5-2用Laplacian滤波进行处理得到的图像对比(lena_frag)
绘制α—MSE折线图如下
图5-3lena图像α—MSE折线图
图5-4均值滤波前后的图像对比(livingroom)
图5-5用Laplacian滤波进行处理得到的图像对比(livingroom)
图5-3α—MSE折线图(livingroom)
取图像lena及其处理得到的图像,展示其第一行的灰度值
图5-7Lena原图像的第一行灰度值分布曲线
图5-8均值滤波后图像第一行的灰度分布图
图5-9α=0.10时图像的灰度分布图
图5-10α=0.20时图像的灰度分布图
图5-11α=0.25时图像的灰度分布图
3、附源代码
Task1:
>>I=[110110110145180200;110110145185200210;110145185200210215;140185200210215220;180200210220220220;200210215220220220];
>>w1=[-1-2-1;000;121];
>>Gx=derivative(I,w1);
>>Gx
Gx=145240215130
23521012065
2051257545
125654020
>>w2=[-101;-202;-101];
>>Gy=derivative(I,w2);
>>Gy
Gy=145240205120
24521012065
2251256535
135754010
>>m=mag(Gx,Gy)
m=205.0610339.4113297.0690176.9181
339.4849296.9848169.705691.9239
304.3846176.776799.247257.0088
183.983799.247256.568522.3607
>>Gx=double(Gx);
>>Gy=double(Gy);
>>k=Gy./Gx
k=
1.00001.00000.95350.9231
1.04261.00001.00001.0000
1.09761.00000.86670.7778
1.08001.15381.00000.5000
>>angle=atan(k)*180/pi
angle=
45.000045.000043.636142.7094
46.193545.000045.000045.0000
47.663045.000040.914437.8750
47.202649.085645.000026.5651
>>quiver(Gx,Gy)
Task2:
f=imread('F:
\tx\lena_frag.tif');
>>f=double(f);
>>[Gx,Gy]=gradient(f);
>>figure;
>>contour(f);
>>quiver(Gx,Gy);
>>mesh(f);
>>f=imread('F:
\tx\lena_frag.tif');
>>h=imnoise(f,'gaussian');
>>h=double(h);
>>contour(h);
>>[Gx,Gy]=gradient(h);
>>quiver(Gx,Gy);
>>mesh(h);
Task3:
>>I=[100100110125120100;105110145185170110;110160200200200115;140185200200200120;140180200200200120;100110120120120120];
>>f=[100100110125120100;105110145185170110;110160200200200115;140185200200200120;140180200200200120;100110120120120120];
>>w=[111;1-81;111];
>>h=derivative(f,w);
>>h
h=15030-210-205
-85-215-100-300
-150-750-245
-245-285-240-400
Task4:
>>f=imread('F:
\tx\lena_frag.tif');
>>h=fspecial('Laplacian');
>>f=double(f);
>>g=imfilter(f,h,'replicate');
>>g=double(g);
>>fori=1:
9;
forj=1:
9;
k(i,j)=g(i,j);
end;
end;
>>k
k=
Task5:
>>f=imread('F:
\tx\lena_frag.tif');
>>w=ones(3,3)
w=
111
111
111
>>h=imfilter(f,w,'replicate');
>>subplot(1,2,1);
>>imshow(f);
subplot(1,2,2);
>>imshow(h);
>>k=fspecial('Laplacian');
>>g=imfilter(f,k,'replicate');
>>f=double(f);
>>g=double(g);
>>g1=f-(0.10)*g;
>>g2=f-(0.20)*g;
>>g3=f-(0.25)*g;
>>g1=uint8(g1);
>>g2=uint8(g2);
>>g3=uint8(g3);
>>figure;
>>subplot(2,2,1);
>>imshow(g);
>>title('锐化后的图像');
>>subplot(2,2,2);
>>imshow(g1);
>>title('α=0.10');
>>subplot(2,2,3);
>>imshow(g2);
>>title('α=0.20');
>>subplot(2,2,4);
>>imshow(g3);
>>title('α=0.25');
>>MSE(f,h)
ans=
2.2532e+04
>>MSE(f,g)
ans=
1.0905e+04
>>MSE(f,g1)
ans=
0.7719
>>MSE(f,g2)
ans=
3.1004
>>MSE(f,g3)
ans=
4.5171
>>figure;
>>x=[0.100.200.25];
>>y=[0.77193.10044.5171];
>>plot(x,y)
>>f1=imread('F:
\tx\livingroom.tif');
>>h1=imfilter(f1,w,'replicate');
>>subplot(1,2,1);
>>imshow(f1);
>>subplot(1,2,2);
>>imshow(h1);
>>m=imfilter(f1,k,'replicate');
>>f1=double(f1);
>>m=double(m);
>>m1=f1-(0.10)*m;
>>m2=f1-(0.20)*m;
>>m3=f1-(0.25)*m;
>>m1=uint8(m1);
>>m2=uint8(m2);
>>m3=uint8(m3);
>>figure;
>>subplot(2,2,1);
>>imshow(m);
>>title('锐化后的图像');
>>subplot(2,2,2);
>>imshow(m1);
>>title('α=0.10');
>>subplot(2,2,3);
>>imshow(m2);
>>title('α=0.20');
>>subplot(2,2,4);
>>imshow(m3);
>>title('α=0.25');
>>MSE(f1,h1)
ans=
1.8934e+04
>>MSE(f1,m)
ans=
1.8117e+04
>>MSE(f1,m1)
ans=
7.6859
>>MSE(f1,m2)
ans=
29.9733
>>MSE(f1,m3)
ans=
46.2319
>>figure;
>>x=[0.100.200.25];
>>y=[7.685929.973346.2319];
>>plot(x,y)
>>j=1:
1:
300;
>>plot(j,f(1,j));
>>plot(j,h(1,j));
>>plot(j,g1(1,j));
>>plot(j,g2(1,j));
>>plot(j,g3(1,j));