-
. z.
- Sobel算子法
Sobel相对于先对图像进展加权平均再做差分。
对于图像的3×3窗口 ,设
则定义Sobel算子为
简化成模板可以表示成如下形式:
Sobel模板
3. 拉普拉斯运算法
拉普拉斯算子定义图像f(*,y)的梯度为
锐化后的图像g为
式中k为扩散效应系数。对系数k的选择要合理,太大会使图像中的轮廓边缘产生过冲;太小则锐化不明显。
常用laplacian算子模板为 , ,
另外还有一些模板也常用于图像增强,如
-
. z.
- - -
- z -
Prewitt模板
四、实验结果与分析
〔包括实验原理、数据的准备、运行过程分析、源程序〔代码〕、图形图象界面等〕
注:本项可以增加页数
%例1 手动阈值分割
[I,map]=imread('');%读入图像
imshow(I);figure;%显示图像
J=imhist(I);imhist(I);%生成直方图并显示
[M,N]=size(I);%返回图像的行数和列数
for i=1:1:M %将i以步长1从1增加到M
for j=1:1:N %将j以步长1从1增加到N
if I(i,j)>80 %如果图像阈值大于80
g(i,j)=0; %则大于80的就变成黑的
else g(i,j)=1; %小于80就变成白的
end
end
end
figure;imshow(g); %保持原图,显示图像g
图1 原图 图2 直方图 图3 阈值分割后的二值图像
分析:手动阈值分割的阈值是取直方图中双峰的谷底的灰度值作为阈值,假设有多个双峰谷底,
则取第一个作为阈值。此题的阈值取80。
%例2 迭代阈值分割
f=imread('');%读入图像
subplot(1,2,1);imshow(f);%创立一个一行二列的窗口,在第一个窗口显示图像
title('原始图像');%标注标题
f=double(f);%转换位双精度
T=(min(f(:))+ma*(f(:)))/2; %设定初始阈值
done=false;%定义开关变量,用于控制循环次数
i=0;%迭代,初始值i=0
while~done %while ~done 是循环条件,~ 是"非〞的意思,此
处done = 0; 说明是无限循环,循环体里面应该还
-
. z.
- - -
- z -
有循环退出条件,否则就循环到死了;
r1=find(f<=T);%按前次结果对t进展二次分
r2=find(f>T);%按前次结果重新对t进展二次分
Tnew=(mean(f(r1))+mean(f(r2)))/2;%新阈值两个围像素平均值和的一半
done=abs(Tnew-T)<1;%设定两次阈值的比拟,当满足小于1时,停顿循环,
1是自己指定的参数
T=Tnew; %把Tnw的值赋给T
i=i+1; %执行循坏,每次都加1
end
f(r1
图像分割实验报告 来自淘豆网m.daumloan.com转载请标明出处.