实验六-图像分割教学文稿

合集下载

图像分割处理实验报告

图像分割处理实验报告

图像分割处理实验报告1. 引言图像分割是计算机视觉中的重要任务之一,其目标是将图像划分成具有相似特征的子区域。

图像分割在很多应用领域中都有着广泛的应用,比如医学影像分析、目标检测和图像编辑等。

本实验旨在探索不同的图像分割算法,并比较它们在不同场景下的效果和性能。

2. 实验方法2.1 实验数据本实验选取了一组包含不同场景的图像作为实验数据集,包括自然景观、人物肖像和城市街景等。

每张图像的分辨率为500x500像素。

2.2 实验算法本实验使用了两种经典的图像分割算法进行比较,分别是基于阈值的分割和基于边缘的分割。

2.2.1 基于阈值的分割基于阈值的分割算法是一种简单而直观的方法,其原理是根据像素值的亮度信息将图像分割成不同的区域。

在本实验中,我们将图像的灰度值与一个事先设定的阈值进行比较,如果大于阈值则设为白色,否则设为黑色,从而得到分割后的图像。

2.2.2 基于边缘的分割基于边缘的分割算法利用图像中的边缘信息进行分割,其原理是检测图像中的边缘并将其作为分割的依据。

在本实验中,我们使用了Canny边缘检测算法来提取图像中的边缘信息,然后根据边缘的位置进行分割。

2.3 实验流程本实验的流程如下:1. 加载图像数据集;2. 对每张图像分别应用基于阈值的分割算法和基于边缘的分割算法;3. 计算分割结果和原始图像之间的相似度,使用结构相似性指标(SSIM)进行评估;4. 分析并比较两种算法在不同场景下的分割效果和性能。

3. 实验结果3.1 分割效果实验结果表明,基于阈值的分割算法在处理简单场景的图像时效果较好,可以比较准确地将图像分割为目标区域和背景。

然而,当图像的复杂度增加时,基于阈值的分割算法的效果明显下降,往往会产生较多的误分割。

相比之下,基于边缘的分割算法在处理复杂场景的图像时表现良好。

通过提取图像的边缘信息,该算法能够较准确地分割出图像中的目标区域,相比于基于阈值的分割算法,其产生的误分割较少。

3.2 性能评估通过计算分割结果和原始图像之间的SSIM指标,我们可以得到两种算法在不同场景下的性能评估。

图像分割 实验报告

图像分割 实验报告

图像分割实验报告图像分割实验报告一、引言图像分割是计算机视觉领域中的一个重要研究方向,它旨在将一幅图像分割成具有语义意义的不同区域。

图像分割在许多应用中发挥着关键作用,如目标检测、场景理解和医学图像处理等。

本实验旨在探索不同的图像分割方法,并对其进行比较和评估。

二、实验方法本实验选择了两种常用的图像分割方法:基于阈值的分割和基于边缘的分割。

首先,我们使用Python编程语言和OpenCV库加载图像,并对图像进行预处理,如灰度化和平滑处理。

接下来,我们将详细介绍这两种分割方法的实现步骤。

1. 基于阈值的分割基于阈值的分割是一种简单而常用的分割方法。

它通过将图像像素的灰度值与预先设定的阈值进行比较,将像素分为前景和背景两类。

具体步骤如下:(1)将彩色图像转换为灰度图像。

(2)选择一个适当的阈值,将图像中的像素分为两类。

(3)根据阈值将图像分割,并得到分割结果。

2. 基于边缘的分割基于边缘的分割方法是通过检测图像中的边缘来实现分割的。

边缘是图像中灰度变化剧烈的区域,通常表示物体的边界。

具体步骤如下:(1)将彩色图像转换为灰度图像。

(2)使用边缘检测算法(如Canny算法)检测图像中的边缘。

(3)根据边缘信息将图像分割,并得到分割结果。

三、实验结果与讨论我们选择了一张包含多个物体的彩色图像进行实验。

首先,我们使用基于阈值的分割方法对图像进行分割,选择了适当的阈值进行实验。

实验结果显示,基于阈值的分割方法能够将图像中的物体与背景分离,并得到较好的分割效果。

接下来,我们使用基于边缘的分割方法对同一张图像进行分割。

实验结果显示,基于边缘的分割方法能够准确地检测出图像中的边缘,并将图像分割成多个具有边界的区域。

与基于阈值的分割方法相比,基于边缘的分割方法能够更好地捕捉到物体的形状和边界信息。

通过对比两种分割方法的实验结果,我们发现基于边缘的分割方法相对于基于阈值的分割方法具有更好的效果。

基于边缘的分割方法能够提供更准确的物体边界信息,但也更加复杂和耗时。

图像分割 实验报告

图像分割 实验报告

图像分割实验报告《图像分割实验报告》摘要:图像分割是计算机视觉领域的重要研究方向,它在许多领域都有着重要的应用价值。

本实验旨在探究图像分割算法在不同场景下的表现,并对比不同算法的优缺点,为图像分割技术的进一步发展提供参考。

一、实验背景图像分割是指将图像划分成若干个具有独立语义的区域的过程。

图像分割技术在医学影像分析、自动驾驶、图像识别等领域都有着广泛的应用。

因此,对图像分割算法的研究和优化具有重要意义。

二、实验目的本实验旨在通过对比不同图像分割算法在不同场景下的表现,探究其优劣,并为图像分割技术的进一步发展提供参考。

三、实验内容1. 数据准备:收集不同场景下的图像数据,包括自然景观、医学影像、交通场景等。

2. 算法选择:选择常用的图像分割算法,如基于阈值的分割、边缘检测、区域生长等。

3. 实验设计:将不同算法应用于不同场景的图像数据上,对比它们的分割效果和计算速度。

4. 结果分析:对比不同算法的优缺点,并分析其适用场景和改进空间。

四、实验结果通过实验我们发现,在自然景观图像中,基于阈值的分割算法表现较好,能够有效地将图像分割成不同的颜色区域;而在医学影像中,边缘检测算法表现更为出色,能够准确地识别出器官的边缘;在交通场景中,区域生长算法表现较好,能够有效地区分不同的交通标志和车辆。

五、结论不同的图像分割算法在不同场景下有着不同的表现,没有一种算法能够适用于所有场景。

因此,我们需要根据具体的应用场景选择合适的图像分割算法,或者结合多种算法进行优化,以达到更好的分割效果。

六、展望未来,我们将继续探究图像分割算法的优化和改进,以适应不同场景下的需求。

同时,我们还将研究图像分割算法在深度学习和人工智能领域的应用,为图像分割技术的发展贡献力量。

通过本次实验,我们对图像分割算法有了更深入的了解,也为其在实际应用中的选择提供了一定的指导。

希望我们的研究能够为图像分割技术的发展做出一定的贡献。

数字图像处理技术-图像分割

数字图像处理技术-图像分割

实验七图像分割课程名称:数字图像处理技术实验日期:成绩:班级:姓名:学号: 1一、实验目的1.了解图像分割的基本操作;2. 实现图像的阈值分割、区域生长。

3.掌握图像膨胀、腐蚀、开运算、闭运算等形态学操作函数的使用方法;4. 实现二值图像的形态学应用二、实验内容1. 在GUI中,实现图像的阈值分割(交互式、迭代法)、区域生长。

2. 在GUI中,,实现二值图像的膨胀、腐蚀, 比较'结构元素类型为:square,line,diamond, disk等的区别。

3. 在GUI中,实现二值图像的开运算、闭运算。

4. 在GUI中,实现二值图像的形态学应用:边界抽取(boundary extraction)区域填充(region filling)细化(thinning)粗化(thickening)骨架(skeletons)修剪(pruning)三、实验代码function axes1_CreateFcn(hObject, eventdata, handles)% hObject handle to axes1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns calledimshow('1.jpg')% Hint: place code in OpeningFcn to populate axes1% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;A=imread('1.jpg');subplot(1,3,1);imshow(A);A1=rgb2gray(A);subplot(1,3,2);imshow(A1);Y=im2bw(A1,0.6);subplot(1,3,3);imshow(Y);% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;W = imread('1.jpg');subplot(2,2,1);imshow(W);A=rgb2gray(W);subplot(2,2,2);imshow(A);h=imhist(A);t=[];t(1)=128;MAX=500;for i=1:MAXs1=0;s2=0;s3=0;s4=0;for k=1:t(i)s1=s1+h(k)*k;s2=s2+h(k);endfor k=1+t(i):256s3=s3+h(k)*k;s4=s4+h(k);endt(i+1)=floor((s1/s2+s3/s4)/2);if (abs(t(i+1)-t(i))<10^-7)break;endendtt=t(i+1);B=A;B(find(B<tt))=0;B(find(B>=tt))=255;subplot(2,2,4);imshow(B);% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;I=imread('1.jpg');I=im2bw(I);subplot(1,3,1);imshow(I);se1=strel('square',9);B1=imdilate(I,se1);subplot(1,3,3);imshow(B1);% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;I=imread('1.jpg');I=im2bw(I);subplot(1,3,1);imshow(I);se1=strel('square',9);B1=imerode(I,se1);subplot(1,3,3);imshow(B1);% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;I=imread('1.jpg');I=im2bw(I);subplot(1,3,1);imshow(I);se1=strel('square',9);B1=imopen(I,se1);subplot(1,3,3);imshow(B1);% --- Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;I=imread('1.jpg');I=im2bw(I);subplot(1,3,1);imshow(I);se1=strel('square',9);B1=imclose(I,se1);subplot(1,3,3);imshow(B1);% --- Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;I=imread('1.jpg');subplot(1,3,1),imshow(I);I1=im2bw(I);subplot(1,3,2),imshow(I1);I2=bwperim(I1);subplot(1,3,3);imshow(I2);% --- Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;A=imread('1.jpg');subplot(1,3,1),imshow(A);a=im2bw(A);subplot(1,3,2),imshow(a);b=bwmorph(a,'thin',Inf);subplot(1,3,3),imshow(b);% --- Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;A=imread('1.jpg');subplot(1,3,1),imshow(A);a=im2bw(A);subplot(1,3,2),imshow(a);b=bwmorph(a,'thicken',Inf);subplot(1,3,3),imshow(b);% --- Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;I=imread('1.jpg');subplot(2,2,1);imshow(I);I1=im2bw(I);subplot(2,2,2);imshow(I1);I2=bwmorph(I1,'skel',1);subplot(2,2,3);imshow(I2);I3=bwmorph(I1,'skel',2);subplot(2,2,4);imshow(I3);;% --- Executes on button press in pushbutton13.function pushbutton13_Callback(hObject, eventdata, handles)% hObject handle to pushbutton13 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;RGB=imread('1.jpg');RGB1=imcrop(RGB,[60,255,400,425]); subplot(1,3,1);imshow(RGB);subplot(1,3,3);imshow(RGB1);四、实验结果截图五、实验体会实现图像的阈值分割、区域生长,基本掌握图像膨胀、腐蚀、开运算、闭运算等形态学操作函数的使用方法。

医学图像分割

医学图像分割
g=double(f);
h3=[-3 -3 5;-3 0 5;-3 -3 5];%垂直
h7=[5 -3 -3;5 0 -3;5 -3 -3];
g3=imfilter(g,h3);
subplot(121),imshow(g3);
title('垂直(1)');
g33=imfilter(g,h7);
subplot(122),imshow(g33);
实验六图像分割(一)实验报告
实验目的:
1.了解图像分割的基本理论和方法;
2.掌握对图像进行点、线和边缘检测的方法;
3.掌握阈值分割的方法和阈值的选择;
实验内容:
1.对图像mask.tif分别用水平、+45度、垂直和-45度Kirsch算子进行处理,观察效果图,理解不同方向的模板对图像处理的作用。
下面是四个算子
g2=imfilter(g,h2);
subplot(121),imshow(g2);
title('-45度(1)');
g22=imfilter(g,h6);
subplot(122),imshow(g22);
title('-45度(2)');
function kirschTEST2(p);
f=imread(p);
function kirschTEST(p);
f=imread(p);
g=double(f);
h1=[5 5 5;-3 0 -3;-3 -3 -3];%水平
h5=[-3 -3 -3;-3 0 -3;5 5 5];
g1=imfilter(g,h1);
subplot(121),imshow(g1);
title('水平(1)');

医学图像处理实验报告 ----图像分割

医学图像处理实验报告 ----图像分割

医学图像处理实验报告 ----图像分割医学图像处理实验报告----图像分割一.实验目的:掌握基本的图像分割方法,观察图像分割的结果,加深对边缘检测、模板匹配、区域生长的理解。

二.实验内容:边缘检测、模板匹配、区域生长。

三.实验方法:1.边缘检测:图象Blood边缘检测方法Sobel打开Toolboxes\Image Processing项选Edge Detection并运行选图象Blood边缘检测方法Sobel如图1所示按Apply键观察检测到的边界从上面四幅图像的对比来看,阈值逐渐变大,而满足要求的像素点也逐渐变少,使得图像的边缘提取的效果也越来越差,图像轮廓变得不清楚了。

以下为采用Prewitt方法的边缘提取效果:以下为Roberts方法边缘提取的效果:以下为Laplacian of Gaussian方法边缘提取的效果:以上的各种方法的理论算法有所不同,但总体效果基本一致。

以下是选其他图像重做上面的实验(适当简化)2.模板匹配:在Photoshop中打开一黑白灰度图象文件在滤镜菜单其他子菜单中选自定项在自定界面中输入点模板按好键观察处理后图象。

原始图像:点模板滤镜后的图像:0 0 00 1 00 0 0点模板: -1 -1 -1 -1 8 -1-1 -1 -1线模板: -1 -1 -1 2 2 2-1 -1 -1线模板: -1 2 -1 -1 2 -1-1 2 -1线模板: 2 -1 -1 -1 2 -1-1 -1 2线模板: -1 -1 2 -1 2 -12 -1 -1从上面的四种线模板得比较中可以发现:第一种对检测横向图像更为有效,第二种为竖向,后两种为135和45度。

这是与模板的构成有关的。

方向模板:-1 1 1-1 -2 1-1 1 1可以看出这个方向模板较多地体现出东方向的像素。

方向模板:1 1 -11 -2 -11 1 -1可以看出这个模板较多地体现出西方向的情况。

方向模板:-1 -1 -11 -2 11 1 1这个模板较多地体现了南向的情况。

图像分割

图像分割

实验三图像分割一、实验目的1、掌握图像分割的基本概念;2、基本了解图像分割的原理和方法;3、掌握用阈值法进行图像分割的基本方法。

二、实验原理及知识点图像分割是将图像划分成若干个互不相交的小区域的过程,小区域是某种意义下具有共同属性的像素的连通集合。

如不同目标物体所占的图像区域、前景所占的图像区域等。

连通是指集合中任意两个点之间都存在着完全属于该集合的连通路径。

图像分割是图像处理与机器视觉的基本问题之一。

图像分割的一个难点在于,在划分之前,不一定能够确定图像区域的数目。

设图像 f(x,y)的灰度范围属于[z1,z2],根据一定的经验及知识确定一个灰度的门限,或者根据一定准则确定[z1,z2]的一个划分 z1,z2,其中 z1 代表目标,z2 代表背景。

根据像素的灰度属于这个划分的哪个部分来将其分类,称为灰度阈值分割法,即:如果 f(x,y)属于 z1,判断(x,y)像素属于目标。

如果 f(x,y)属于 z2,则判断(x,y)像素属于背景。

分割门限选择的准确性直接影响分割的精度及图像描述分析的正确性。

门限选得太高,容易把大量的目标判为背景,定的太低又会把大量的背景判为目标。

因此正确分割门限是很重要的。

1、双峰法如果图像所含的目标区域和背景区域大小可比,而且目标区域和背景区域在灰度上有一定的差别,那么该图像的灰度直方图会呈现双峰—谷状,如下图所示:其中一个峰值对应于目标的中心灰度,另一个峰值对应于背景的中心灰度。

由于目标边界点较少且其灰度介于它们之间。

所以双峰之间的谷点对应着边界的灰度,可以将谷点的灰度作为分割门限图 3.1 双峰图2、自适应全局阈值(单阀值)迭代平均法:为 T 选取一个初始估计使用 T 分割图像。

这时产生两组像素:灰度值>=T 的所有像素组成的 G1,和灰度值<T 的所有像素组成的 G2计算 G1 和 G2 范围内像素的平均灰度值u1 和 u2计算新阈值 T=(u1+u2)/2重复上述步骤,直到迭代中前后两次的阈值差小于预先设定参数为止3、最大类间方差法 (Otsu)在对图像进行阈值分割时,选定的分割阈值应使前景区域的平均灰度、背景区域的平均灰度与整幅图像的平均灰度之间差别最大,这种差异用区域的方差来表示。

图像分割技术的使用教程与案例分析

图像分割技术的使用教程与案例分析

图像分割技术的使用教程与案例分析图像分割是计算机视觉领域的重要研究方向,它指的是将图像分成若干个具有相似特征的区域。

图像分割广泛应用于医学图像分析、目标检测、无人驾驶等领域。

本文将详细介绍图像分割技术的使用教程,并分享一些经典案例分析。

一、图像分割的基础原理图像分割的目标是将图像中的每个像素分配到对应的区域,使得同一区域内的像素具有相似的特征。

常用的图像分割方法包括基于阈值、边缘检测、区域生长、聚类等。

1. 基于阈值的分割方法:这是最简单且常用的分割方法,通过设定阈值,将图像中灰度值高于或低于阈值的像素分为不同的区域。

可以根据应用场景的需求来选择适当的阈值。

2. 边缘检测:边缘检测可以提取图像中的边界信息,然后根据边界信息将图像分割成不同的区域。

常用的边缘检测算法包括Sobel、Canny等。

3. 区域生长:区域生长是根据像素的相似性原则进行的,从种子像素开始,将与之相邻且相似的像素归为同一区域,逐步扩展分割区域。

区域生长的效果受到种子的选择、相似性准则的设定等因素的影响。

4. 聚类:聚类方法将图像像素聚合成若干个具有相似特征的集群,进而实现对图像的分割。

常用的聚类方法有K-means、Mean-shift等。

二、图像分割工具的使用教程在实际应用中,图像分割常常借助计算机软件或工具进行。

以下是两个常用的图像分割工具的使用教程。

1. OpenCVOpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。

下面是使用OpenCV进行图像分割的简单示例:(1)导入必要的库:```pythonimport cv2import numpy as np```(2)读取图像:```pythonimage = cv2.imread('image.jpg')```(3)将图像转换成灰度图像:```pythongray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)```(4)使用阈值方法进行分割,以获得二值图像:```pythonret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)```(5)显示分割结果:```pythoncv2.imshow('Segmentation', binary)cv2.waitKey(0)cv2.destroyAllWindows()```2. MATLABMATLAB是一种常用的科学计算工具,也提供了丰富的图像处理与分析函数。

实验六 图像分割

实验六 图像分割

信息工程学院实验报告课程名称:数字图像处理 实验项目名称:实验六 图像分割 实验时间:2016、12、16班级: 姓名: 学号:一、实验目得1、 使用Mat La b 软件进行图像得分割。

使学生通过实验体会一些主要得分割算子对图像处理得效果,以及各种因素对分割效果得影响。

2、 要求学生能够自行评价各主要算子在无噪声条件下与噪声条件下得分割性能。

能够掌握分割条件(阈值等)得选择。

完成规定图像得处理并要求正确评价处理结果,能够从理论上作出合理得解释。

二、实验内容与步骤1、边缘检测(1)使用Roberts 算子得图像分割实验调入并显示图像r oom、tif 图像;使用Ro berts 算子对图像进行边缘检测处理; Ro ber ts 算子为一对模板:(a)450方向模板 (b)1350方向模板图 1 mat lab 2010得Ro berts 算子模板相应得矩阵为:rh = [0 1;—1 0]; rv = [1 0;0 -1];这里得rh 为45度Rob erts 算子,rv 为135度Robert s 算子。

分别显示处理后得45度方向与135方向得边界检测结果;用“欧几里德距离”与“街区距离”方式计算梯度得模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果。

提示:先做检测结果得直方图,参考直方图中灰度得分布尝试确定阈值;应反复调节阈值得大小,直至二值化得效果最为满意为止。

(2)使用Prewitt 算子得图像分割实验(a)水平模型(b)垂直模板图2、Prewitt算子模板使用Prewitt 算子进行内容(1)中得全部步骤。

(3)使用Sobel 算子得图像分割实验使用Sobel算子进行内容(1)中得全部步骤。

(a)水平模型(b)垂直模板图3、Sobel算子模板(4)使用LoG (拉普拉斯-高斯)算子得图像分割实验使用LoG (拉普拉斯—高斯)算子进行内容(1)中得全部步骤。

提示1:处理后可以直接显示处理结果,无须另外计算梯度得模。

数字图像处理_实验报告书(六)分割

数字图像处理_实验报告书(六)分割

figureimshow(a)figuresubplot(2,2,1) imshow(bw1) xlabel('soble') subplot(2,2,2) imshow(bw2) xlabel('prewitt') subplot(2,2,3) imshow(bw3) xlabel('roberts') subplot(2,2,4) imshow(bw4) xlabel('log')截图:(2)编写MATLAB程序,用Hough变换对图像进行直线检测。

如例8.5所示。

程序:I=imread('Peppers.bmp');rotI=imrotate(I,33,'crop')BW=edge(rotI,'log')[H,T,R]=hough(BW)P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2)); y=R(P(:,1));lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);figure,imshow(rotI),hold onmax_len=0;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');end截图:(3)编写MATLAB程序,对一幅图像进行基于形态学的边缘检测。

图像分割实验报告

图像分割实验报告

图像分割实验报告
《图像分割实验报告》
图像分割是计算机视觉领域的一项重要技术,它能够将图像分割成不同的区域或对象,为图像识别、目标检测等任务提供了重要的基础。

本实验报告将介绍我们在图像分割领域的研究成果及实验结果。

实验目的
本次实验的目的是通过对图像分割算法的研究和实验,探讨不同算法在图像分割任务中的表现,并对比它们的优缺点,为进一步的研究提供参考。

实验方法
我们选取了常用的图像分割算法,包括基于阈值的分割、区域增长法、边缘检测法、基于聚类的分割等,对这些算法进行了实验比较。

我们使用了多种类型的图像数据集,包括自然场景图像、医学影像等,以验证算法在不同场景下的表现。

实验结果
通过实验,我们发现不同的图像分割算法在不同的图像类型下表现出不同的优劣势。

基于阈值的分割算法在简单的图像中表现较好,但在复杂的场景下效果有限;区域增长法对于连续性较强的对象分割效果较好;边缘检测法在处理边缘清晰的图像时表现出色;基于聚类的分割算法对于复杂背景下的对象分割有一定优势。

结论
通过本次实验,我们对图像分割算法的优劣势有了更深入的了解,不同的算法适用于不同的场景。

在未来的研究中,我们将进一步探索图像分割算法的改进
和优化,以提高图像分割的准确性和效率,为计算机视觉领域的发展贡献力量。

实验六图像分割

实验六图像分割

信息工程学院实验报告课程名称:数字图像处理实验项目名称:实验六 图像分割 实验时间: 班级: 姓名: 学号:一、实验目的1. 使用MatLab 软件进行图像的分割。

使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。

2. 要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。

能够掌握分割条件(阈值等)的选择。

完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。

二、实验内容与步骤1.边缘检测(1)使用Roberts 算子的图像分割实验调入并显示图像room.tif 图像;使用Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板:(a )450方向模板 (b )1350方向模板图 1 matlab 2010的Roberts 算子模板相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这里的rh 为45度Roberts 算子,rv 为135度Roberts 算子。

分别显示处理后的45度方向和135方向的边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果。

提示:先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意为止。

(2)使用Prewitt 算子的图像分割实验(a)水平模型(b)垂直模板图2. Prewitt算子模板使用Prewitt 算子进行内容(1)中的全部步骤。

(3)使用Sobel 算子的图像分割实验使用Sobel(a)水平模型(b)垂直模板图3. Sobel算子模板(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。

提示1:处理后可以直接显示处理结果,无须另外计算梯度的模。

提示2:注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。

实验六指导书 图像分割

实验六指导书 图像分割

实验六图像分割一、实验目的利用光谱特征进行遥感图像的分割和分割后处理。

二、实验内容1、利用直方图进行图像分割2、提取指定颜色的对象3、去除图片的背景噪声4、提取厦门市TM遥感影像中的水体信息5、提取线性地物信息6、图像形态学基本方法三、实验条件电脑、ENVI软件。

厦门市TM遥感影像、实验数据四、实验步骤1.利用直方图进行图像分割图像:地物与直方图DSCF0153.JPG打开图像,并显示图像的直方图在直方图窗口,移动RGB拉伸的最小值分别为150,160,150,并分别应用,查看拉伸后的图像。

使用下面的表达式去除天空,其中,b1,b2,b3对应图像的R,G,B通道,b4对应原始图像。

b4*(1-b1 lt 150)* (b2 lt 160) * (b3 lt 150)2.彩色图像的分割(1)提取图像中的兰花关闭所有打开的窗口和文件图像:兰花.jpg要求:将兰花从图像分割出来主要操作:利用直方图,查看当前像素值工具比较兰花在各个通道上的灰度值的差异,确定兰花与周围物体最大的通道或通道的组合。

提示:兰花是蓝色的。

表达式:(b1 gt b2)* (b1 gt b3),其中b1是蓝通道,b2,b3对应绿和红通道。

(2)去除背景噪声,提取图像中的娃娃关闭所有打开的窗口和文件图像:娃娃.jpg选择“波段“作为直方图数据来源,进行图像拉伸。

思考以下问题①直方图有什么特征?②任意对RGB波段进行拉伸,图像发生了什么变化?③按照如下设置进行图像拉伸,R:154~184,G:8~100,B:0~160,图像发生了什么变化?④如何去除背景中的噪声?步骤:使用float(b1)/ float(b2)对通道R和G进行代数运算,产生图像m1;对于m1图像,使用b1 gt 0.98进行代数运算,产生图像m2;使用原始图像的RGB作为b1(在变量与波段匹配的对话框中,点击按钮Map Variable to input file),使用m2作为b2,进行代数运算b1*b2,产生新的图像m3,按照R,G,B顺序合成显示。

图像分割实验报告

图像分割实验报告

图像分割实验报告图像分割实验报告一、引言图像分割是计算机视觉领域中的重要研究方向之一,它旨在将一幅图像分割成若干个具有相似特征的区域。

图像分割在许多应用中都起着关键作用,如目标检测、图像识别、医学图像处理等。

本实验旨在探究不同的图像分割算法的性能和适用场景。

二、实验方法本次实验选取了常用的两种图像分割算法:基于阈值的分割算法和基于边缘检测的分割算法。

实验使用的图像为一幅自然风景图。

1. 基于阈值的分割算法基于阈值的分割算法是最简单且常用的分割方法之一。

该方法通过设置一个或多个阈值,将图像中像素的灰度值与阈值进行比较,将像素分为不同的区域。

实验中,我们通过观察图像的灰度直方图,选择合适的阈值对图像进行分割。

2. 基于边缘检测的分割算法基于边缘检测的分割算法通过检测图像中的边缘信息来实现分割。

实验中,我们选取了经典的Canny边缘检测算法。

该算法首先对图像进行高斯滤波,然后计算图像的梯度,最后通过非极大值抑制和双阈值处理来提取图像的边缘。

三、实验结果1. 基于阈值的分割算法通过观察图像的灰度直方图,我们选择了适当的阈值对图像进行分割。

实验结果显示,该方法能够将图像中的前景物体与背景分离,并得到清晰的边界。

然而,该方法对光照变化和噪声比较敏感,当图像中存在复杂的纹理和颜色变化时,分割效果较差。

2. 基于边缘检测的分割算法使用Canny边缘检测算法对图像进行分割,实验结果显示,该方法能够有效地提取图像中的边缘信息。

与基于阈值的方法相比,基于边缘检测的方法对光照变化和噪声有较好的鲁棒性。

然而,该方法在分割复杂纹理和颜色变化较小的区域时,容易产生边缘断裂的问题。

四、讨论与总结通过本次实验,我们对比了基于阈值的分割算法和基于边缘检测的分割算法的优缺点。

基于阈值的方法简单直观,适用于对比较简单的图像进行分割;而基于边缘检测的方法能够提取图像中的边缘信息,适用于复杂的图像分割任务。

然而,两种方法都存在一定的局限性,需要根据具体的应用场景选择合适的算法。

14组实验六 实验6 图像分割

14组实验六 实验6 图像分割

实验6 图像分割实验目的:1.熟悉区域生长法;2. 分水岭分割算法实验内容:1.区域生长法利用图像像素间的相似性进行分割,调用regiongrow函数对图像weld.tif进行处理,注意参数中S(种子值),T(阈值)的选择对分割效果的影响。

S=255,T=65和S=255 T=150和S=150,T=65三组值进行处理,理解在区域生长法的原理。

同时对liver.bmp,自己选择合适的S和T,以较好的分割出肝脏。

参考书本P309例10.8答:>> f=imread('weld.tif');>> imshow(f)>> title('weld.tif');>> f1=regiongrow(f,255,65);>> figure,imshow(f1)>> title('S=255,T=65');>> f2=regiongrow(f,255,150);>> figure,imshow(f2)>> title('S=255,T=150');>> f3=regiongrow(f,150,65);>> figure,imshow(f3) >> title('S=150,T=65');>> f=imread('liver.bmp');>> imshow(f)>> title('liver.bmp');>> [g, NR, SI, TI] = regiongrow(f,175,20); >> figure,imshow(g)>> title('区域生长S=175,T=20');>> gf=imfill(g);>> figure,imshow(gf)>> title('孔洞填充');>> se=strel('disk',10);>> ge=imerode(gf,se);>> figure,imshow(ge)>> title('腐蚀');>> ir=imreconstruct(ge,gf); >> figure,imshow(ir)>> title('重构');>> se=strel('disk',2);>> d=imdilate(ir,se);>> figure,imshow(d);>> title('膨胀分离出的肝脏');2.利用分水岭分割算法对图像rice.tif进行分割,并对出现过分割现象提出解决方案。

图形分割教案

图形分割教案

图形分割教案图形分割是计算机视觉领域的一个重要任务,可以将图像中的物体或者区域进行分割和提取。

在本篇教案中,我们将介绍图形分割的基本概念、常用方法和实际应用,并提供一些实践活动,帮助学生深入理解和掌握图形分割的原理和技术。

一、图形分割的概念和作用图形分割是将图像中的像素或者区域划分为不同的组成部分的过程。

其主要目标是提取出感兴趣的物体或者区域,为后续的图像处理和分析任务提供准确的数据支持。

图形分割在计算机视觉、医学影像、目标检测等领域具有广泛的应用。

二、图形分割的方法1. 基于阈值的分割方法:利用像素灰度值或者颜色的阈值将图像进行分割,适用于像素灰度值或者颜色之间明显差异的情况。

2. 区域生长法:从种子点开始,通过迭代的方式将与种子点具有相似特征的像素逐步加入到当前区域中,直到满足停止准则为止。

3. 边缘检测法:提取图像中的边缘信息,通过边缘之间的连接关系进行分割。

4. 基于图割的分割方法:将图像分割问题转化为最小割问题,通过最小割算法求解分割结果。

5. 基于深度学习的分割方法:利用深度神经网络进行图像分割,通过网络学习图像的特征和上下文信息进行分割。

三、图形分割的实际应用1. 医学影像分割:将医学影像中的组织、器官进行分割,为医生提供辅助诊断和手术导航。

2. 图像语义分割:将图像中的不同物体进行分割和标注,为计算机视觉任务提供准确的图像语义信息。

3. 视频目标分割:将视频中的目标进行分割和提取,用于视频监控、人机交互等应用。

4. 自动驾驶:将道路图像进行分割,提取出道路和交通标识等重要信息,为自动驾驶系统提供环境感知和决策支持。

实践活动:1. 使用Python和OpenCV库实现基于阈值的图像分割方法,对给定图像进行像素分割和区域分割,并比较不同阈值对分割结果的影响。

2. 利用区域生长法进行图像分割,根据给定的种子点和生长准则对图像进行分割,并观察分割结果的准确性和稳定性。

3. 使用深度学习框架(如TensorFlow或PyTorch)搭建图像分割模型,利用已有的数据集进行训练和测试,并评估模型的分割性能和泛化能力。

图形分割教案

图形分割教案

图形分割教案一、教学目标1.了解图形分割的基本概念和应用场景;2.掌握图形分割的常见算法,包括阈值分割、区域生长、边缘检测等;3.能够使用Python编写图形分割算法,并应用于实际图像处理中。

二、教学内容1. 图形分割的基本概念图形分割是指将一幅图像分成若干个互不重叠的区域,每个区域内具有一定的相似性。

图形分割是图像处理中的重要技术之一,广泛应用于计算机视觉、医学影像、遥感图像等领域。

2. 图形分割的应用场景图形分割在实际应用中有很多场景,比如:•目标检测:将图像中的目标从背景中分离出来,便于后续处理;•图像分割:将图像分成若干个区域,便于对每个区域进行单独处理;•图像增强:通过分割图像,可以对每个区域进行不同的增强处理,提高图像质量;•医学影像分析:对医学影像进行分割,可以帮助医生诊断疾病。

3. 图形分割的常见算法3.1 阈值分割阈值分割是最简单的图形分割算法之一,其基本思想是将图像中的像素分成两类,一类是大于阈值的像素,另一类是小于等于阈值的像素。

阈值分割常用于二值化处理,比如将灰度图像转换为黑白图像。

阈值分割的实现步骤如下:1.选择一个合适的阈值;2.将图像中的像素按照阈值分成两类;3.对分割后的图像进行后续处理。

3.2 区域生长区域生长是一种基于像素相似性的图形分割算法,其基本思想是从一个种子像素开始,逐步将与其相邻的像素加入同一个区域中,直到所有相邻的像素都被加入到该区域中为止。

区域生长的实现步骤如下:1.选择一个种子像素;2.判断该像素与相邻像素之间的相似性;3.如果相似,则将相邻像素加入到该区域中;4.重复步骤2和3,直到所有相邻像素都被加入到该区域中。

3.3 边缘检测边缘检测是一种将图像分成前景和背景的图形分割算法,其基本思想是在图像中寻找像素值变化较大的位置,将其作为前景和背景的分界线。

边缘检测的实现步骤如下:1.对图像进行平滑处理,去除噪声;2.计算图像中每个像素的梯度值;3.根据梯度值确定像素是否为边缘;4.对边缘进行后续处理,比如连接、填充等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六-图像分割信息工程学院实验报告课程名称:数字图像处理实验项目名称:实验六图像分割实验时间:2016.12.16班级:姓名:学号:一、实验目的1. 使用MatLab 软件进行图像的分割。

使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。

2. 要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。

能够掌握分割条件(阈值等)的选择。

完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。

二、实验内容与步骤1.边缘检测(1)使用Roberts 算子的图像分割实验调入并显示图像room.tif图像;使用Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板:(a)450方向模板(b)1350方向模板图 1 matlab 2010的Roberts算子模板相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这里的rh 为45度Roberts 算子,rv 为135度Roberts 算子。

分别显示处理后的45度方向和135方向的边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果。

提示:先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意为止。

(2)使用Prewitt 算子的图像分割实验(a)水平模型(b)垂直模板图2. Prewitt算子模板使用Prewitt 算子进行内容(1)中的全部步骤。

(3)使用Sobel 算子的图像分割实验使用Sobel(a)水平模型(b)垂直模板图3. Sobel算子模板(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。

提示1:处理后可以直接显示处理结果,无须另外计算梯度的模。

提示2:注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。

(5) 打印全部结果并进行讨论。

下面是使用sobel算子对图像进行分割的MATLAB程序f=imread('room.tif');[gv,t1]=edge(f,'sobel','vertical');%使用edge函数对图像f提取垂直边缘imshow(gv)[gb,t2]=edge(f,'sobel','horizontal');%使用edge函数对图像f提取水平边缘figure,imshow(gb)w45=[-2 -1 0;-1 0 1;0 1 2];%指定模版使用imfilter计算45度方向的边缘g45=imfilter(double(f),w45,'replicate');T=0.3*max(abs(g45(:))); %设定阈值g45=g45>=T; %进行阈值处理figure,imshow(g45);在函数中使用'prewitt'和'roberts'的过程,类似于使用sobel边缘检测器的过程。

三、实验结果及结果分析1.边缘检测(1)使用Roberts 算子的图像分割实验实验结果:g45g135(1)欧几里得距离计算梯度模(1)欧几里得距离计算梯度模二值化(2)街区距离计算梯度模(2)街区距离计算梯度模二值化图4. Roberts 算子的图像分割实验结果分析:Roberts 算子利用局部差分算子寻找边缘,边缘定位精度比较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声能力。

该算子对具有陡峭边缘且噪声少的图像效果较好。

(2)使用Prewitt 算子的图像分割实验实验结果:g45g135(1)欧几里得距离计算梯度模(1)欧几里得距离计算梯度模二值化(2)街区距离计算梯度模(2)街区距离计算梯度模二值化图5 .Prewitt 算子的图像分割实验结果分析:Prewitt 算子先对图像做加权平滑处理,然后再做微分运算,所不同的是平滑部分的权值有些差异,因此它们对噪声有一定的抑制能力。

(3)使用Sobel 算子的图像分割实验实验结果:g45g135(1)欧几里得距离计算梯度模(1)欧几里得距离计算梯度模二值化(1)欧几里得距离计算梯度模(1)欧几里得距离计算梯度模二值化(2)街区距离计算梯度模(2)街区距离计算梯度模二值化图6. Sobel 算子的图像分割实验结果分析:Sobel 算子和Prewitt 算子一样,都是先对图像做加权平滑处理,然后再做微分运算,因此它们对噪声有一定的抑制能力。

比较实验结果可以发现,Sobel 算子比Prewitt 算子在噪声抑制方面略胜一筹,但不能排除检测结果中出现的虚假边缘。

虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素的宽度。

(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验实验结果:gv gb g45图7. LoG (拉普拉斯-高斯)算子的图像分割实验结果分析:拉普拉斯算子,它是无方向的二阶微分算子,对图像中的阶跃型边缘定位准确,该算子对噪声非常敏感,它使噪声成分得到加强。

这两个特性使得该算子容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘。

LoG算子,该算子克服了拉普拉斯算子抗噪声性能比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘平滑掉了。

(5) 打印全部结果并进行讨论。

使用sobel、prewitt和roberts算子对图像进行分割实验。

sobel(gv)sobel(gb)sobel(g45)prewitt(gv)prewitt(gb)prewitt(g45)roberts(gv)roberts(gb)roberts(g45)图8. 全部结果四、实验中遇到问题及解决方法1. 评价一下Roberts 算子、Prewitt 算子、Sobel 算子对于噪声条件下边界检测的性能。

答:Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。

检测水平和垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感。

Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。

对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。

当对精度要求不是很高时,是一种较为常用的边缘检测方法。

Prewitt算子利用像素点上下、左右邻点灰度差,在边缘处达到极值检测边缘。

对噪声具有平滑作用,定位精度不够高。

2.实验中所使用的四种算子所得到的边界有什么异同?答:算子的存在就是对这种导数分割原理进行的实例化计算,是为了在计算过程中直接使用的一种计算单位。

Roberts算子:边缘定位准,但是对噪声敏感。

适用于边缘明显且噪声较少的图像分割。

Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。

经分析,由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。

Prewitt算子:对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。

Sobel算子:Sobel算子和Prewitt算子都是加权平均,但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。

一般来说,距离越远,产生的影响越小。

Isotropic Sobel算子:加权平均算子,权值反比于邻点与中心点的距离,当沿不同方向检测边缘时梯度幅度一致,就是通常所说的各向同性。

Laplacian算子:这是二阶微分算子。

其具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。

但是,其对噪声比较敏感,所以,图像一般先经过平滑处理,因为平滑处理也是用模板进行的,所以,通常的分割算法都是把Laplacian算子和平滑算子结合起来生成一个新的模板。

Laplacian算子一般不以其原始形式用于边缘检测,因为其作为一个二阶导数,Laplacian 算子对噪声具有无法接受的敏感性;同时其幅值产生算边缘,这是复杂的分割不希望有的结果;最后Laplacian算子不能检测边缘的方向;所以Laplacian在分割中所起的作用包括:(1)利用它的零交叉性质进行边缘定位;(2)确定一个像素是在一条边缘暗的一面还是亮的一面;一般使用的是高斯型拉普拉斯算子(Laplacian of a Gaussian,LoG),由于二阶导数是线性运算,利用LoG卷积一幅图像与首先使用高斯型平滑函数卷积改图像,然后计算所得结果的拉普拉斯是一样的。

所以在LoG公式中使用高斯函数的目的就是对图像进行平滑处理,使用Laplacian算子的目的是提供一幅用零交叉确定边缘位置的图像;图像的平滑处理减少了噪声的影响并且它的主要作用还是抵消由Laplacian算子的二阶导数引起的逐渐增加的噪声影响。

五、实验心得体会通过这个实验,我熟练学会了利用MatLab 软件进行图像的分割。

在通过实验体会到了一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。

在评价各主要算子在无噪声条件下和噪声条件下的分割性能下,掌握分割条件(阈值等)的选择。

完成规定图像的处理并评价处理结果。

六、源程序清单%%%1.使用Roberts 算子的图像分割实验I=imread('room.tif');rh=[-1 0; 0 1];rv=[0 -1; 1 0];g45=imfilter(double(I),rh,'replicate');g135=imfilter(double(I),rv,'replicate');subplot(3,2,1);imshow(g45,[]);title('g45');subplot(322);imshow(g135,[]);title('g135');%计算梯度模%(1)欧几里得距离计算梯度模OD=sqrt(g45.^2+g135.^2);subplot(323);imshow(OD,[]);title('(1)欧几里得距离计算梯度模');T=0.1*max(OD(:)); BWOD=OD>T;subplot(324);imshow(BWOD);title('(1)欧几里得距离计算梯度模二值化');%(2)街区距离计算梯度摸JD=abs(g45)+abs(g135);subplot(325);imshow(JD,[]);title('(2)街区距离计算梯度模');T=0.1*max(JD(:));BWOD=OD>T;subplot(326);imshow(BWOD);title('(2)街区距离计算梯度模二值化');%%%2.使用Prewitt 算子的图像分割实验I=imread('room.tif');rh=[-1 -1 -1;0 0 0;1 1 1];rv=[-1 0 1 ;-1 0 1;-1 0 1];g45=imfilter(double(I),rh,'replicate');g135=imfilter(double(I),rv,'replicate');subplot(3,2,1);imshow(g45,[]);title('g45');subplot(322);imshow(g135,[]);title('g135');%计算梯度模%(1)欧几里得距离计算梯度模OD=sqrt(g45.^2+g135.^2);subplot(323);imshow(OD,[]);title('(1)欧几里得距离计算梯度模');T=0.1*max(OD(:)); BWOD=OD>T;subplot(324);imshow(BWOD);title('(1)欧几里得距离计算梯度模二值化');%(2)街区距离计算梯度模JD=abs(g45)+abs(g135);subplot(325);imshow(JD,[]);title('(2)街区距离计算梯度模');T=0.1*max(JD(:));BWOD=OD>T;subplot(326);imshow(BWOD);title('(2)街区距离计算梯度模二值化');%%%3.使用Sobel 算子的图像分割实验I=imread('room.tif');rh=[-1 -2 -1;0 0 0;1 2 1];rv=[-1 0 1 ;-2 0 2;-1 0 1];g45=imfilter(double(I),rh,'replicate');g135=imfilter(double(I),rv,'replicate');subplot(3,2,1);imshow(g45,[]);title('g45');subplot(322);imshow(g135,[]);title('g135');%计算梯度模%(1)欧几里得距离计算梯度模OD=sqrt(g45.^2+g135.^2);subplot(323);imshow(OD,[]);title('(1)欧几里得距离计算梯度模');T=0.1*max(OD(:)); BWOD=OD>T;subplot(324);imshow(BWOD);title('(1)欧几里得距离计算梯度模二值化');%(2)街区距离计算梯度摸JD=abs(g45)+abs(g135);subplot(325);imshow(JD,[]);title('(2)街区距离计算梯度模');T=0.1*max(JD(:));BWOD=OD>T;subplot(326);imshow(BWOD);title('(2)街区距离计算梯度模二值化');%%%4.使用LoG (拉普拉斯-高斯)算子的图像分割实验f=imread('room.tif');[gv,t1]=edge(f,'log','vertical');%使用edge函数对图像f提取垂直边缘subplot(1,3,1);imshow(gv);title('gv');[gb,t2]=edge(f,'log','horizontal');%使用edge函数对图像f提取水平边缘subplot(1,3,2);imshow(gb);title('gb');w45=[-2 -1 0;-1 0 1;0 1 2];%指定模版使用imfilter计算45度方向的边缘g45=imfilter(double(f),w45,'replicate');T=0.3*max(abs(g45(:))); %设定阈值g45=g45>=T; %进行阈值处理subplot(1,3,3);imshow(g45);title('g45');%%%5打印全部结果并进行讨论。

相关文档
最新文档