资源描述:
《华工电信数学实验轮廓线地提取》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、题目:轮廓线的提取学院:电子与信息学院班级:2010级信工五班学生:陈耿涛序号:3号一.实验内容1.任意选取一幅灰度图像和一幅彩色图像,对算法中若干关键语句中进行调整,得出不同的实验结果,对这些结果进行分析,并与MATLAB自带的边缘检测做对比。2.提出其它的轮廓线提取方法,与简单阈值法进行比较分析。二.实验过程1.(1)代码①灰度图轮廓线提取函数functionlinegray(pix,n)%灰度图的轮廓线提取figure;A=imread(pix);%读取指定的灰度图T=linecalculate(A,n);%计算矩阵
2、轮廓线subplot(2,1,1);%将窗口分割为两行一列,下图显示于第一行imshow(A);%显示原图像title('灰度图原图');%图释axisimage;%保持图片显示比例subplot(2,1,2);%下图显示于第二行imshow(T);%显示提取轮廓线后的图片title('提取轮廓线');%图释axisimage;%保持图片显示比例②计算矩阵轮廓线函数(利用sin函数进行非线性变换)functiontlab=linecalculate(piclab,n)%计算矩阵轮廓线[a,b]=size(piclab);%
3、a,b分别等于矩阵的行数和列数B=double(piclab);%将矩阵变为双精度矩阵D=40*sin((pi/2)*(1/255)*B);%将矩阵进行非线性变换tlab=piclab;%新建同等大小矩阵forp=2:a-1%计算矩阵轮廓线forq=2:b-1ifabs((D(p,q)-D(p,q+1)))>n
4、
5、abs((D(p,q)-D(p,q-1)))>n
6、
7、abs((D(p,q)-D(p+1,q)))>n
8、
9、abs((D(p,q)-D(p-1,q)))>n
10、
11、abs((D(p,q)-D(p-1,q+1)))>n
12、
13、
14、abs((D(p,q)-D(p+1,q-1)))>n
15、
16、abs((D(p,q)-D(p-1,q-1)))>n
17、
18、abs((D(p,q)-D(p+1,q+1)))>ntlab(p,q)=0;%置轮廓线点为黑色elsetlab(p,q)=255;%置非轮廓线点为白色end;end;end;所得图像:1、linegray('E:pixx.jpg',1)2、linegray('E:pixx.jpg',3.5)③计算矩阵轮廓线函数(利用log函数进行非线性变换)functiontlab=linecalculate1(piclab
19、,n)%计算矩阵轮廓线[a,b]=size(piclab);%a,b分别等于矩阵的行数和列数B=double(piclab);%将矩阵变为双精度矩阵D=40*log(B./255+1)%将矩阵进行非线性变换tlab=piclab;%新建同等大小矩阵forp=2:a-1%计算矩阵轮廓线forq=2:b-1ifabs((D(p,q)-D(p,q+1)))>n
20、
21、abs((D(p,q)-D(p,q-1)))>n
22、
23、abs((D(p,q)-D(p+1,q)))>n
24、
25、abs((D(p,q)-D(p-1,q)))>n
26、
27、abs((D
28、(p,q)-D(p-1,q+1)))>n
29、
30、abs((D(p,q)-D(p+1,q-1)))>n
31、
32、abs((D(p,q)-D(p-1,q-1)))>n
33、
34、abs((D(p,q)-D(p+1,q+1)))>ntlab(p,q)=0;%置轮廓线点为黑色elsetlab(p,q)=255;%置非轮廓线点为白色end;end;end;所画图像如下:1、linegray('E:pixx.jpg',2)1、linegray('E:pixx.jpg',4)④彩色图轮廓线提取函数functionlinecolor(pix,n)%彩色
35、图片轮廓线提取函数figure;A=imread(pix);%读取指定彩色图片subplot(3,3,2);imshow(A);title('彩色图原图');axisimage;T=A;T(:,:,2)=0;T(:,:,3)=0;subplot(3,3,4);imshow(T);axisimage;title('红色强度原图');T=linecalculate(A(:,:,1),n);%计算红色矩阵轮廓线subplot(3,3,7);imshow(T);axisimage;title('红色强度轮廓线');T=A;T(:,
36、:,1)=0;T(:,:,3)=0;subplot(3,3,5);imshow(T);axisimage;title('绿色强度原图');T=linecalculate(A(:,:,2),n);%计算红色矩阵轮廓线subplot(3,3,8);imshow(T);axisimage;title('绿色强