实验四 图像分割
数字图像处理实验报告——图像分割实验
实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。
实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。
3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。
通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。
2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
图像分割处理实验报告
图像分割处理实验报告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. 结果分析:对比不同算法的优缺点,并分析其适用场景和改进空间。
四、实验结果通过实验我们发现,在自然景观图像中,基于阈值的分割算法表现较好,能够有效地将图像分割成不同的颜色区域;而在医学影像中,边缘检测算法表现更为出色,能够准确地识别出器官的边缘;在交通场景中,区域生长算法表现较好,能够有效地区分不同的交通标志和车辆。
五、结论不同的图像分割算法在不同场景下有着不同的表现,没有一种算法能够适用于所有场景。
因此,我们需要根据具体的应用场景选择合适的图像分割算法,或者结合多种算法进行优化,以达到更好的分割效果。
六、展望未来,我们将继续探究图像分割算法的优化和改进,以适应不同场景下的需求。
同时,我们还将研究图像分割算法在深度学习和人工智能领域的应用,为图像分割技术的发展贡献力量。
通过本次实验,我们对图像分割算法有了更深入的了解,也为其在实际应用中的选择提供了一定的指导。
希望我们的研究能够为图像分割技术的发展做出一定的贡献。
图像分割实验报告
图像分割实验报告医学图像处理实验报告实验名称:图像分割设计实验姓名:gaojunqiang学号:20105405班级:生医 1001指导教师:……2013年6月5日一、实验目的1、编程实现下列功能:读出存储的黑白灰度图象并显示,用拉普拉斯算子对图象进行边缘检测,显示处理后图象,存储处理后图象。
2、编程实现下列功能:读出存储的黑白灰度图象并显示,用鼠标点击图象上某一点,以灰度相近原则进行区域生长,显示处理后图象,存储处理后图象。
二、实验原理1、拉普拉斯边缘检测二维函数f(x,y)的拉普拉斯是一个二阶的微分定义为:,2f = [,2f / ,x2 ,,2f / ,y2]一般情况下可以用一个拉普拉斯模板算子。
模板算子分为4邻域和8邻域,如下,2f = 4z5 – (z2 + z4 + z6 + z8)0 1 01 -4 10 1 04邻域模板算子,2f = 8z5 – (z1 + z2 + z3 + z4+z5 + z6 + z7+ z8)1 1 11 -8 11 1 18邻域模板算子2、区域增长区域增长是通过一个起始点作为种子点对他周围的点进行选择。
它采取的是一种迭代的思想。
区域增长也分为四邻域和八邻域两种方式。
通过像素的集合进行区域增长的算法如下:1)根据图像的不同应用选择一个或一组种子,它或者是最亮或最暗的点,或者是位于点簇中心的点。
2)选择一个描述符(条件)3)从该种子开始向外扩张,首先把种子像素加入集合,然后不断将与集合中各个像素连通、且满足描述符的像素加入集合4)上一过程进行到不再有满足条件的新结点加入集合为止。
三、实验代码及结果1、拉普拉斯边缘检测代码如下:%主函数如下:clc;closeall;clearall;Imag = imread('lena.tiff');ImagGray = rgb2gray(Imag); %将彩色图片转换成灰度图片 figure()imshow(ImagGray),title('灰度图像');% T = graythresh(ImagGray); %用大津法自动确定阈值 %I=edge(ImagGray,'log',0.004);% figure(),imshow(I), title('laplace边缘图像'); ImagGray =double(ImagGray); T = 60; %设置阈值LapModType = 8; %设置laplace模板方式ImagLapEdge = LaplaceEdge(ImagGray,LapModType,T); %laplace边缘检测ImagLapEdge = uint8(ImagLapEdge);figure()imshow(ImagLapEdge),title('laplace边缘图像');%拉普拉斯边缘检测函数如下:functionImagLapEdge = LaplaceEdge(ImagGray,MoldType,Thresh)%-----------------参数介绍-------------------- %输入参数:% ImagGray: 输入的灰度图像% MoldType: 摸板类型,包括四邻域和八邻域 % Thresh: 边缘检测阈值%输出参数:% ImagEdge: 边缘像素点,存储的是二值化图像[r,c] = size(ImagGray); ImagLapEdge = zeros(r,c);%四邻域拉普拉斯边缘检测算子if 4 == MoldTypefori = 2:r-1for j = 2:c-1Temp =-4*ImagGray(i,j)+ImagGray(i-1,j)+ImagGray(i+1,j)+ImagGray(i,j-1)+ImagGray(i,j+1);if Temp > ThreshImagLapEdge(i,j) = 255; elseImagLapEdge(i,j) = 0; endendendend%八邻域拉普拉斯边缘检测算子if 8 == MoldTypefori = 2:r-1for j = 2:c-1Temp =-8*ImagGray(i,j)+ImagGray(i-1,j)+ImagGray(i+1,j)+ImagGray(i,j-1)+ImagGray(i,j+1)+ImagGray(i-1,j-1)+ImagGray(i+1,j+1)+ImagGray(i+1,j-1)+ImagGray(i-1,j+1);if Temp > ThreshImagLapEdge(i,j) = 255; elseImagLapEdge(i,j) = 0;endendendend拉普拉斯边缘检测实验结果如下:图1 原灰度图像2、区域增长实验代码:主函数如下:clc;closeall;clearall;Imag = imread('lena.jpg');figure()imshow(Imag), title('原灰度图片');n = 4; %设置区域增长的种子点数 [x,y] = ginput(n); %在图像上取点 V = [y,x];V = uint16(V);thresh = 33; %区域增长的阈值growingtype = 8; %增长方式[regionGet,imout,regionsize]=regiongrowing(V,Imag,thresh,growingtype ); %区域增长函数figure()imshow(imout), title('区域分割后的图片'); holdonplot(x,y,'+');由于区域增长代码老师已给这里就不在写出。
用matlab数字图像处理四个实验
数字图像处理实验指导书目录实验一MATLAB数字图像处理初步实验二图像的代数运算实验三图像增强-空间滤波实验四图像分割3实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。
灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。
例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。
因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。
图像关于x和y坐标以及振幅连续。
要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。
将坐标值数字化成为取样;将振幅数字化成为量化。
采样和量化的过程如图1所示。
因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。
作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。
图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:➢亮度图像(Intensity images)➢二值图像(Binary images)➢索引图像(Indexed images)➢RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。
若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。
若图像是double类,则像素取值就是浮点数。
图像分割实验报告汇总
一、实验目的
1.掌握图像分割的基本思想,了解其分割技术及其计算策略;
2.学会从图像处理到分析的关键步骤,掌握图像分割过程;
3.了解图像分割的意义,进一步加深对图像分析和理解;
4.掌握基本分割方法:迭代分割和OTSU图像分割,并编程实现。
二、实验原理
(一)迭代阈值分割选取的基本思路是:首先根据图像中物体的灰度分布情况,选取一个近似阈值作为初始阈值,一个较好的方法就是将图像的灰度均值作为初始阈值,然后通过分割图像和修改阈值的迭代过程获得认可的最佳阈值。迭代式阈值选取过程可描述如下:
由图3可得:对于直方图双峰不明显或图像目标和背景比例差异悬殊迭代法所选取的阈值不如最大类间方差法(OTSU)(差异不是很大,很细微)。
但是对于直方图双峰明显谷底较深的图像迭代分割可以较快地获得满意结果。
五、实验程序段(具体见实验框架)
1.迭代图像分割:
void CImageProcessingDoc::Onimagediedaifenge()
msg.Format("分割阈值T=%d",T);
AfxMessageBox(msg);
for(j=0;j<m_Height;j++)
{
for(i=0;i<m_Width;i++)
{
if (m_pDibInit->m_pDibBits[j*m_SaveWidth + i]>=T)
m_pDibInit->m_pDibBits[j*m_SaveWidth + i]=255;
1.计算初始化阈值 = ;
2.根据 ,将图像分为两部分,分别计算灰度值期望,取其平均值为g1;
(完整word版)图像分割 实验报告
f=imread('cameraman.tif');%读入图像
subplot(1,2,1);imshow(f);%创建一个一行二列的窗口,在第一个窗口显示图像
title('原始图像');%标注标题
f=double(f);%转换位双精度
T=(min(f(:))+max(f(:)))/2;%设定初始阈值
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)=0;%把小于初始阈值的变成黑的
给背景指定一个特定的灰度级
该方法将背景用一个固定灰度级LG表现,便于研究边缘灰度的变化。
二值图像输出
在某些场合(如字符识别等),既不关心非边缘像素的灰度级差别,又不关心边缘像素的灰度级差别,只关心每个像素是边缘像素还是非边缘像素,这时可采用二值化图像输出方式,其表达式为
此法将背景和边缘用二值图像表示,便于研究边缘所在位置。
imshow(f,[]); %显示原图像f
title('原始图像'); %给图像加标题为'原始图像'
J=imnoise(f,'gaussian',0.02);%对图像加高斯噪声
subplot(3,3,2);%创建有3*3子图像的窗口,原图在位置2
imshow(J,[]);%显示加噪声的图像
title('加高斯噪声图像');%给图像加标题为'加高斯噪声图像'
图像分割实验报告
图像分割实验报告一、实验目的1、掌握图像分割的基本思想,了解其分割技术及其计算策略;2、学会从图像处理到分析的关键步骤,掌握图像分割过程;3、了解图像分割的意义,进一步加深对图像分析与理解;4、掌握基本分割方法:迭代分割与OTSU图像分割,并编程实现。
二、实验原理(一)迭代阈值分割选取的基本思路就是:首先根据图像中物体的灰度分布情况,选取一个近似阈值作为初始阈值,一个较好的方法就就是将图像的灰度均值作为初始阈值,然后通过分割图像与修改阈值的迭代过程获得认可的最佳阈值。
迭代式阈值选取过程可描述如下:1、计算初始化阈值g0=(g max+g min);22、根据g0,将图像分为两部分,分别计算灰度值期望,取其平均值为g1;3、如此反复迭代,当|g n-g n−1|足够小时,停止迭代,取T=g n即为最终阈值。
(二)OTSU图像分割(最大类间方差法)就是一种自适应的阈值确定的方法,就是按图像的灰度特性,将图像分成背景与目标两部分。
背景与目标之间的类间方差越大,说明构成图像的两部分的差别越大, 当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。
因此,使类间方差最大的分割意味着错分概率最小。
以最佳门限将图像灰度直方图分割成两部分,使两部分类间方差取最大值,即分离性最大。
OTSU阈值选取过程可描述如下:1、记T为目标与背景的分割阈值,目标点数占图像比例为w1, 平均灰度为u1;背景点数占图像比例为w2,平均灰度为u1;2、图像的总平均灰度为:u=w1*u1+w2*u2;3、目标与背景图象的方差:g=w1*(u1-u)*(u1-u)+w1*(u2-u)*(u2-u)=w1*w2*(u1-u2)*(u1-u2);4、当方差g最大时,可以认为此时前景与背景差异最大,此时的灰度T就是最佳阈值。
二、实验内容1、利用C++编程实现迭代阈值图像分割算法;2、利用C++编程实现OTSU动态阈值图像分割算法。
三、实验框图四、实验结果与分析图1原图图2迭代图像分割图3OTSU图像分割实验分析:由图2可知:迭代所得的阈值分割的图象效果良好,能区分出图像的目标与背景的主要区域,但在图像的细微处还没有很好的区分度。
实验4
实验四图像分割一实验目的1.掌握图像分割的目的。
2.掌握基于阈值选取的图像分割方法(灰度阈值分割、直方图阈值、最大熵阈值等方法)3.掌握基于区域的图像分割方法。
4.掌握基于边缘检测的图像分割方法。
5.了解运动图像目标分割方法。
二实验原理三 实验内容 1、测试微小结构:%图像分割测试图像中的微小结构 I=imread('cell.tif');%读入原始图像到I 变量 subplot(2,2,1),imshow(I),title('原始图像');Ic=imcomplement(I);%使用imcomplement 函数对图像求反色 BW=im2bw(Ic,graythresh(Ic));%使用im2bw 函数对图像进行阈值分割 subplot(2,2,2),imshow(BW),title('阈值截取分割后图像');se=strel('disk',6);%创建形态学结构元素,选择一个半径为6个像素的圆盘 %形结构元素 BWc=imclose(BW,se);%图像形态学关闭运算 BWco=imopen(BWc,se);%图像形态学开启运算 subplot(2,2,3),imshow(BWco), title('对小图像进行删除后图像');mask=BW & BWco; %对两幅图进行逻辑与操作subplot(2,2,4),imshow(mask),title('检测结果图像'); 2、双峰法%直方图双峰法阈值分割图像程序 clearI=imread('cameraman.bmp'); %读入灰度图像并显示imshow(I);figure;imhist(I);%显示灰度图像直方图Inew=im2bw(I,140/255);%图像二值化,根据140/255确定的阈值,划分目标与背景原始图像阈值截取分割后图像对小图像进行删除后图像检测结果图像501001502002503、最大熵%基于最大信息熵算法程序clear;close all;I=imread('goldhill.bmp');%输入原图像figure,imshow(I);%显示原始彩色图像if length(size(I))==3%如果是彩色图像转换为灰度图像I=rgb2gray(I);%将RGB图像转换为灰度图像end[X,Y]=size(I);V_max=max(max(I));V_min=min(min(I));T0=(V_max+V_min)/2;%初始分割阈值h=imhist(I);%计算图像直方图figure,plot(h);grayp=imhist(I)/numel(I);%求图像像素概率I=double(I);H0=-sum(grayp(find(grayp(1:end)>0)).*log(gr ayp(find(grayp(1:end)>0))));cout=100;%是指迭代次数为100次while(cout>0)Tmax=0;%初始化graypd=0;graypd=0;Hd=0;Hb=0;T1=T0;A1=0;A2=0;B1=0;B2=0;for i=1:X%计算灰度平均值for j=1:Yif(I(i,j)<=T1)A1=A1+1;B1=B1+I(i,j);elseA2=A2+1;B2=B2+I(i,j);endendendM1=B1/A1;M2=B2/A2;T2=(M1+M2)/2;TT=round(T2);graypd=sum(grayp(1:TT));%计算分割区域G1的概率和if graypd==0graypd=eps;endgraypb=1-graypd;if graypb==0graypb=eps;endHd=-sum((grayp(find(grayp(1:TT)>0))/graypd) .*log((grayp(find(grayp(1:TT)>0))/graypd)));%计算分割后区域G1的信息熵Hb=-sum(grayp(TT+(find(grayp(TT+1:end)>0) ))/graypb.*log(grayp(TT+(find(grayp(TT+1:en d)>0)))/graypb));%计算分割后区域G2的信息熵H1=Hd+Hb;cout=cout-1;if(abs(H0-H1)<0.0001)|(cout==0)Tmax=T2;break;elseT0=T2;H0=H1;end endTmaxcoutfor i=1:X%根据所求阈值Tmax转换图像for j=1:Yif(I(i,j)<=Tmax)I(i,j)=0;elseI(i,j)=1;endendendfigure,imshow(I);%输出图像分割处理后的结果运行结果:Tmax =128.9812 cout =96 Tmax =137.6849 cout = 924、全局阈值%MATLAB对图像基于全局阈值的分割程序%function test2(a)clear all;a=150; %awie可设定的全局阈值I=imread('cameraman.bmp'); %输入灰度图像figure(1),imshow(I) %显示原灰度图像for i=1:256for j=1:256if double(I(i,j))>aI(i,j)=255;endif double(I(i,j))<=aI(i,j)=0;endendendfigure(2),imshow(I) %显示分割处理后的二值图像5、四叉树分解%调用qtdecomp 函数实现四叉树分解I=imread('cameraman.bmp');%读入原始图像 S=qtdecomp(I,.27); %四叉树分解,返回的四叉树结构稀疏矩阵 Sblocks=repmat(uint8(0),size(S));for dim=[512 256 128 64 32 16 8 4 2 1];%定义新区域显示分块numblocks=length(find(S==dim)); %各分块 的可能维数 if(numblocks>0)values=repmat(uint8(1),[dim dim numblocks]);values(2:dim,2:dim,:)=0;blocks=qtsetblk(blocks,S,dim,values); end endblocks(end,1:end)=1; blocks(1:end,end)=1;subplot(121),imshow(I)%显示原始图像 subplot(122),imshow(blocks,[])%显示四叉树分解后的图像6、各种边缘检测算子%MATLAB 调用edge 函数实现各算子进行边缘检测例程I=imread('tire.tif');%读入原始灰度图像并显示figure(1),imshow(I);BW1=edge(I,'sobel',0.1);%用Sobel 算子进行边缘检测,判别阈值为0.1 figure(2),imshow(BW1);BW2=edge(I,'roberts',0.1);%用Roberts 算子进行边缘检测,判别阈值为0.1 figure(3),imshow(BW2);BW3=edge(I,'prewitt',0.1);%用Prewitt 算子进行边缘检测,判别阈值为0.1 figure(4),imshow(BW3);BW4=edge(I,'log',0.01);%用Log 算子进行边缘检测,判别阈值为0.01 figure(5),imshow(BW4);BW5=edge(I,'canny',0.1);%用Cany 算子进行边缘检测,判别阈值为0.1 figure(6),imshow(BW5);四思考题1、直方图阈值的双峰法是如何选取阈值的?2、有哪些常用的边缘检测算子?它们各自有什么优缺点。
实验4图像分割及边缘检测
实验4 图像分割及边缘检测应电101黎杰良201036626115一、实验目的:理解图像分割和边缘检测的概念,利用Matlab图像处理函数实现图像的分割,并实现边缘的提取。
二、实验内容:1、学习并应用阈值分割im2bw函数, 利用直方图来选取阈值,对已知图像进行二值化分割。
2、学习用常见的Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、Canny算子等微分算子检测图像边缘三、实验要求:提交原图像和各种直方图曲线,以及按直方图处理后的图像。
四、实验步骤1、阈值分割(1)阅读im2bw ,imhist的帮助文件;>> help im2bwIM2BW Convert image to binary image by thresholding.IM2BW produces binary images from……………Example-------load treesBW = im2bw(X,map,0.4);imshow(X,map), figure, imshow(BW)See also GRAYTHRESH, IND2GRAY, RGB2GRAY.>> help imhistIMHIST Display histogram of image data.IMHIST(I) displays a histogram for…………Example-------I = imread('pout.tif');imhist(I)See also HISTEQ, HIST.(2)读入一幅图像,使用imhist( )函数产生图像的直方图,分析它的直方图分布,选取分割的阈值;选取阀值T=160/255(3)用BW=im2bw(I,T)函数,实现阈值分割。
选取阀值T=160/2552、边缘检测(1)阅读edge的帮助文件;>> help edgeEDGE Find edges in intensity image.EDGE takes an intensity or a binary image I as its input, and ………Example-------Find the edges of the rice.tif image using the Prewitt and Cannymethods:I = imread('rice.tif');BW1 = edge(I,'prewitt');BW2 = edge(I,'canny');imshow(BW1)figure, imshow(BW2)See also FSPECIAL.(2)用BW=edge(I,methold)函数,实现图像的边缘检测;(3)比较不同算子的边缘检测效果。
实验4 医学图像分割
实验4 医学图像分割实验目的:1.了解图像分割的基本理论和方法;2.掌握阈值分割的方法和阈值的选择;3.掌握图像处理的模版的使用和设计;实验内容:1.对图片124.bmp用im2bw进行处理,其分割的阈值分别为0.3,0.5和0.7,分析那些效果好(结合图像的直方图)。
a=imread('124.bmp');b=im2bw(a,0.3);c=im2bw(a,0.5);d=im2bw(a,0.75);figure(1)imshow(b);figure(2)imshow(c);figure(3)imshow(d);figure(4)imhist(a);0.30.50.7从上面的图像来看,按阈值为0.7来分割图像的效果算比较好,能把一些器官分割出来,但还是有个别的器官没有分割出来。
2.编写m文件globalthreshold.m,完成对输入图片全局阈值的计算(参见课本的算法),输入参数为图片f,初始阈值T (默认为min+max/2),还有差值范围T0(默认5)(T0表示这一次计算得到的T与上一次的T值之差<T0,则当前的T值为结果阈值,否则再重复调用),返回为符合条件的全局阈值gT。
用计算得到的阈值对124.bmp进行处理,看看效果如何?function output=globalthreshold(f,T,T0)if nargin<2T=0.5*(double(min(f(:)))+double(max(f(:))));endif nargin<3T0=5;enddone=false;while ~doneu1=f>=T;u2=f<T;u1=sum(sum(f(u1)))/sum(sum(u1)); u2=sum(sum(f(u2)))/sum(sum(u2)); if (abs(T-0.5*(u1+u2)))<T0break;elseT=0.5*(u1+u2);endendoutput=T;f=imread('124.bmp');a=0.5*(max(max(f))+min(min(f)));i=globalthreshold(f,a,5)g=im2bw(f,i/255);imshow(g);效果不是很好,与上题阈值为0.3的图像效果差不多。
图像分割实验报告
图像分割实验报告
《图像分割实验报告》
图像分割是计算机视觉领域的一项重要技术,它能够将图像分割成不同的区域或对象,为图像识别、目标检测等任务提供了重要的基础。
本实验报告将介绍我们在图像分割领域的研究成果及实验结果。
实验目的
本次实验的目的是通过对图像分割算法的研究和实验,探讨不同算法在图像分割任务中的表现,并对比它们的优缺点,为进一步的研究提供参考。
实验方法
我们选取了常用的图像分割算法,包括基于阈值的分割、区域增长法、边缘检测法、基于聚类的分割等,对这些算法进行了实验比较。
我们使用了多种类型的图像数据集,包括自然场景图像、医学影像等,以验证算法在不同场景下的表现。
实验结果
通过实验,我们发现不同的图像分割算法在不同的图像类型下表现出不同的优劣势。
基于阈值的分割算法在简单的图像中表现较好,但在复杂的场景下效果有限;区域增长法对于连续性较强的对象分割效果较好;边缘检测法在处理边缘清晰的图像时表现出色;基于聚类的分割算法对于复杂背景下的对象分割有一定优势。
结论
通过本次实验,我们对图像分割算法的优劣势有了更深入的了解,不同的算法适用于不同的场景。
在未来的研究中,我们将进一步探索图像分割算法的改进
和优化,以提高图像分割的准确性和效率,为计算机视觉领域的发展贡献力量。
实验四 图像分割设计实验
实验四图像分割设计实验一、设计任务与要求1、编程实现下列功能:读出以BMP格式存储的黑白灰度图象并显示,用拉普拉斯算子对图象进行边缘检测,显示处理后图象,以BMP格式存储处理后图象。
2、编程实现下列功能:读出以BMP格式存储的黑白灰度图象并显示,用鼠标点击图象上某一点,以灰度相近原则进行区域生长,显示处理后图象,以BMP格式存储处理后图象。
二、设计原理与参考电路图像分割基本方法原理参考教材内容:边缘检测,模板匹配,区域生长。
三、预习要求与思考题1、在Matlab图像处理工具箱上实现图像的边缘检测,模板匹配,区域生长算法并根据分割效果,进行分析,选择适合的图像分割方法。
(1)边缘检测a) 在Matlab Help菜单中, 选Demos项。
b) 打开Toolboxes\Image Processing项,选Edge Detection,并运行。
c) 选图象Blood、边缘检测方法Sobel,如图1所示。
d) 按Apply键。
e) 观察检测到的边界。
f) 改变阈值,重做(4)-(5)。
g) 选边缘检测方法Prewitt,重做(4)-(6)。
h) 选边缘检测方法Roberts,重做(4)-(6)。
i) 选边缘检测方法Laplacian of Gaussian,重做(4)-(6)。
j) 选其他图象,重做(4)-(9)。
图1:图像边界检查工具箱(2)模板匹配a)在Photoshop中打开一黑白灰度图象文件,如图2所示。
b)在滤镜菜单其他子菜单中选自定项。
c)在自定界面中输入点模板。
d)按好键。
e)观察处理后图象。
f)在编辑菜单中选返回项,恢复原始图象。
g)在滤镜菜单其他子菜单中选自定项。
h)在自定界面中分别输入线模板、方向模板,重做(4)-(5)。
i)在Photoshop中其他黑白灰度图象文件,重做(2)-(8)。
图1:Photoshop图像处理2、使用给定的程序程序框架,编写图像边界提取的基本运算函数;使用Visual C++ 调试边界提起的基本函数,详细了解其代码运行过程和机制;熟悉边界提起在图像识别中的作用,对照观察边界提取前后的图像,分析边界提取的效果及在图像识别中的作用;边界提取基本算法函数如例:Robert算子的边界提取函数见附;3、分析各种分割技术及其效果,设计实验所给图像(实验指导老师提供图像)的分割处理过程及处理目的;四、实验报告要求及注意事项1、实验报告要求(1)实验独立完成,报告要求写出编程及调试结果;(2)对实验要求的设计任务,要求在系统上调试并在报告中写出实现方法和代码;(3)实验总结,分析本次实验及过程,实验过程中出现的问题及解决办法。
实验四图像分割及彩色图像处理
实验四图像分割及彩色图像处理一、实验目的使用MatLab 软件进行图像的分割。
使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。
使用matlab如阿健对图像机械彩色处理,使学生通过实验熟悉彩色图像处理的相关方法,并体会到图像彩色处理技术及其对图像处理的效果。
二、实验要求要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。
能够掌握分割条件(阈值等)的选择。
完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。
三、实验内容与步骤第一部分(1)使用Roberts 算子的图像分割实验调入并显示图像5.1.13.tiff中图像;使用Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板:相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这里的rh 为水平Roberts 算子,rv为垂直Roberts 算子。
分别显示处理后的水平边界和垂直边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果;提示:先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意为止。
分别显示处理后的水平边界和垂直边界检测结果;将处理结果转化为“白底黑线条”的方式;给图像加上零均值的高斯噪声;对于噪声图像重复步骤b~f。
(2)使用Prewitt 算子的图像分割实验使用Prewitt 算子进行内容(1)中的全部步骤。
(3)使用Sobel 算子的图像分割实验使用Sobel 算子进行内容(1)中的全部步骤。
(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。
提示1:处理后可以直接显示处理结果,无须另外计算梯度的模。
提示2:注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。
图像分割实验报告-推荐下载
实验题目 图像分割
姓名
一、实验目的
班级
1.熟悉 matlab 图像处理工具箱及图像边缘检测函数的使用; 2.理解和掌握图像边缘检测(Sobel、Prewitt、Log 边缘算子)的方 法和应用; 3.掌握用阈值法进行图像分割的基本方法。
二.实验环境 Matlab 环境下
三、实验内容与步骤 使用 Roberts 算子的图像分割实验 调入并显示图像 room.tif 中图像;使用 Roberts 算子对图像进行 边缘检测处理; Roberts 算子为一对模板:
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置各试时类卷,管调需路控要习试在题验最到;大位对限。设度在备内管进来路行确敷调保设整机过使组程其高1在中正资,常料要工试加况卷强下安看与全22过,22度并22工且22作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
实验四、图像的分割
太原理工大学现代科技学院数字图像处理课程实验报告专业班级测控14-4学号2014101854姓名李昊指导教师刘帆验名称实验四、图像的分割同组人 专业班级姓名学号成绩 实验四、图像的分割 一、实验目的 理解和掌握图像分割的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行分割处理; 二、实验原理 1 膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法。
两者数学表达如下: 膨胀:B A C ⊕= 腐蚀:B A C Θ= 2图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界。
按照使用图像的特点可以分为两类: 利用区域间灰度不连续性――基于边界检测 利用区域内灰度的相似性――基于区域分割 三、实验步骤 1打开计算机,安装和启动MATLAB 程序;程序组中“work ”文件夹中应有待处理的图像文件; 2对于血细胞图像 a).对图像进行去噪、增强处理; b)运用全局阀值进行二值化(参考教材209页,例9.7, 例9.8, 例9.9); c)用膨胀腐蚀等形态学方法将血细胞分成不同的连通域(参考教材250页,例10.9, 例10.10),并使用贴标签的方式对连通域进行统计和标记。
3 记录和整理实验报告。
……………………………………装………………………………………订…………………………………………线…………………………………………………………………a).对图像进行去噪、增强处理;……………………………………装………………………………………订…………………………………………线………………………………………太原理工大学现代科技学院实验报告b).运用全局阀值进行二值化……………………………………装………………………………………订…………………………………………线…………………………………………………………………………装………………………………………订…………………………………………线…………………………………………………………………………装………………………………………订…………………………………………线………………………………………c).用膨胀腐蚀等形态学方法将血细胞分成不同的连通域 I=imread('cameraman.tif ') imshow(I) se=strel('ball ',8,8); I2=imerode(I,se); imshow(I2) I=imread('cameraman.tif') imshow(I) se=strel('ball',8,8); I2=imdilate(I,se); imshow(I2) ……………………………………装………………………………………订…………………………………………线………………………………………四、实验仪器 1计算机; 2 MATLAB 程序; 3记录用的笔、纸。
实验四 图像分割
实验四图像分割一、实验目的1.掌握边缘检测的Matlab实现方法2.了解用四叉数分解函数进行区域分割的方法3.了解Matlab区域操作函数的使用方法4.了解图像分析和理解的基本方法二、实验步骤1、打开MATLAB软件,设置工作路径,新建M文件。
2、将图片放到当前工作路径下3、写入图像分割(包括边缘检测、区域操作)程序保存并调试运行。
程序具体要求:1)边缘检测<i>使用edge函数对图像‘cameraman.tif’进行边缘检测。
<ii>要求同时比较'roberts','sobel','prewitt','canny','log'算子的检测效果。
2)区域操作使用区域选择函数roicolor, 区域滤波函数roifilt2和区域填充函数roifilld对图像‘eight.tif’进行区域操作。
4、保存实验结果并完善实验报告。
三、实验程序1. 边缘检测(1)使用edge函数对图像‘cameraman.tif’进行边缘检测。
I=imread('cameraman.tif');imshow(I)bw1=edge(I,'roberts');bw2=edge(I,'sobel');bw3=edge(I,'prewitt');bw4=edge(I,'canny');bw5=edge(I,'log');figure,imshow(bw1)figure,imshow(bw2)figure,imshow(bw3)figure,imshow(bw4)figure,imshow(bw5)2.区域操作使用区域选择函数roicolor, 区域滤波函数roifilt2和区域填充函数roifilld对图像‘eight.tif’进行区域操作。
图像分割实验报告
图像分割实验报告图像分割实验报告一、引言图像分割是计算机视觉领域中的重要研究方向之一,它旨在将一幅图像分割成若干个具有相似特征的区域。
图像分割在许多应用中都起着关键作用,如目标检测、图像识别、医学图像处理等。
本实验旨在探究不同的图像分割算法的性能和适用场景。
二、实验方法本次实验选取了常用的两种图像分割算法:基于阈值的分割算法和基于边缘检测的分割算法。
实验使用的图像为一幅自然风景图。
1. 基于阈值的分割算法基于阈值的分割算法是最简单且常用的分割方法之一。
该方法通过设置一个或多个阈值,将图像中像素的灰度值与阈值进行比较,将像素分为不同的区域。
实验中,我们通过观察图像的灰度直方图,选择合适的阈值对图像进行分割。
2. 基于边缘检测的分割算法基于边缘检测的分割算法通过检测图像中的边缘信息来实现分割。
实验中,我们选取了经典的Canny边缘检测算法。
该算法首先对图像进行高斯滤波,然后计算图像的梯度,最后通过非极大值抑制和双阈值处理来提取图像的边缘。
三、实验结果1. 基于阈值的分割算法通过观察图像的灰度直方图,我们选择了适当的阈值对图像进行分割。
实验结果显示,该方法能够将图像中的前景物体与背景分离,并得到清晰的边界。
然而,该方法对光照变化和噪声比较敏感,当图像中存在复杂的纹理和颜色变化时,分割效果较差。
2. 基于边缘检测的分割算法使用Canny边缘检测算法对图像进行分割,实验结果显示,该方法能够有效地提取图像中的边缘信息。
与基于阈值的方法相比,基于边缘检测的方法对光照变化和噪声有较好的鲁棒性。
然而,该方法在分割复杂纹理和颜色变化较小的区域时,容易产生边缘断裂的问题。
四、讨论与总结通过本次实验,我们对比了基于阈值的分割算法和基于边缘检测的分割算法的优缺点。
基于阈值的方法简单直观,适用于对比较简单的图像进行分割;而基于边缘检测的方法能够提取图像中的边缘信息,适用于复杂的图像分割任务。
然而,两种方法都存在一定的局限性,需要根据具体的应用场景选择合适的算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电学院
实验报告
实验名称图像分割
课程名称数字图像处理A
姓名成绩
班级学号
日期2011.6.21 地点3#531
实验四图像分割
1. 实验任务
(1)了解并掌握图像分割的基本原理;
(2)编写程序使用Hough 变换处理图像,进行线检测;
(3)编写程序使用阈值处理方法进行图像分割,根据实验结果分析效果; (4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2. 实验环境及开发工具
Windws2000/XP MATLAB 7.x
3. 实验内容
对256级灰度的数字图像camera.bmp (如图4.1所示)和car.bmp (如图4.2所示)进行如下处理:
(1)对图像camera.bmp 进行Hough 变换进行线检测,显示处理前、后图像:
思考如何利用Hough 变换进行圆检测;
(2)对图像car.bmp 分别利用不同的阈值处理方法进行图像中汽车及车牌的分割,显示处理前、后图像;
思考不同的阈值处理算法对分割效果的影响? 4.实验分析
在MatLab 中输入各程序代码后运行程序,得到输出结果如图所示 (1)程序运行图(对图像camera.bmp 进行Hough 变换进行线检测):
图4.1 实验图像camera.bmp
图4.2 实验图像
car.bmp
(2)程序运行图(对图像car.bmp 利用不同的阈值处理方法进行图像中汽车及车牌的分割)
<1>利用直方图阈值法对图像进行分割
原图
象
边缘检测图像
hough 变换后的图象
θ
ρ
50
100
150
200250300350
经典hough 变换提取的图像
原图像
分割图
<2>利用Otsu 算法法对图像进行分割图像进行分割
5.实验结论
Hough 变换处理图像:为提高Hough 变换的计算速度,是参加Hough 变换的点不是整幅图像的每个像素,。
而是边缘检测即从图像平面中提取边缘点或特征点,然后再二值化处理与细化,得到Hough 变换后的图像,最后再用经典Hough 变换从camera.bmp 图像的边缘检测后的变换二值图像中提取图像,通过这样的处理,能够减少图像中的噪声点,以提高边缘检测的准确性同时采用通过细化可减少Hough 变换的点数。
利用不同的阈值处理图像:利用Otsu 算法分割原始图像,将汽车、车牌号分割,
改变阈值选取最优图像,使用Otsu 算法阈值分割能够分割出图像中特定的目标,更清晰的分辨出图像中的目标通过该算法对于多目标对象分割效果是很明显的。
附件
50
100
150
200
250
直方图
原图像
Otsu 分割图
程序
1)程序(对图像camera.bmp进行Hough变换进行线检测)
I = imread('camera.bmp');%jaynes-thesis
[x,y]=size(I);
BW=edge(I);
figure;imshow(I);title('原图象')
figure;imshow(BW);title('边缘检测图像')
rho_max=floor(sqrt(x^2+y^2))+1; %由原图数组坐标算出ρ最大值,并取整数部分加1
%此值作为ρ,θ坐标系ρ最大值
accarray=zeros(rho_max,180); %定义ρ,θ坐标系的数组,初值为0。
%θ的最大值,180度
Theta=[0:pi/180:pi]; %定义θ数组,确定θ取值范围
for n=1:x,
for m=1:y
if BW(n,m)==1
for k=1:180 %将θ值代入hough变换方程,求ρ值
rho=(m*cos(Theta(k)))+(n*sin(Theta(k)));
%将ρ值与ρ最大值的和的一半作为ρ的坐标值(数组坐标),这样做是为了防止ρ值出现负数
rho_int=round(rho/2+rho_max/2);
%在ρθ坐标(数组)中标识点,即计数累加
accarray(rho_int,k)=accarray(rho_int,k)+1;
end
end
end
end
figure;colormap gray;
imagesc(accarray);title('hough变换后的图象')
xlabel('\theta'), ylabel('\rho');
%利用hough变换提取直线
%寻找100个像素以上的直线在hough变换后形成的点
K=1; %存储数组计数器
for rho_n=1:rho_max %在hough变换后的数组中搜索
for theta_m=1:180
if accarray(rho_n,theta_m)>=15 %设定直线的最小值。
case_accarray_n(K)=rho_n; %存储搜索出的数组下标
case_accarray_m(K)=theta_m;
K=K+1;
end
end
end
%把这些点构成的直线提取出来,输出图像数组为I_out
I_out=zeros(x,y);
I_jiao_class=zeros(x,y);
for n=1:x
for m=1:y
if BW(n,m)==1
for k=1:180
rho=(m*cos(Theta(k)))+(n*sin(Theta(k)));
rho_int=round(rho/2+rho_max/2);
%如果正在计算的点属于100像素以上点,则把它提取出来
for a=1:K-1
if rho_int==case_accarray_n(a)&k==case_accarray_m(a)
I_out(n,m)=BW(n,m);
I_jiao_class(n,m)=k;
end
end
end
end
end
end
figure(4);imshow(I_out);title('经典hough变换提取的图像');
2)程序(对图像car.bmp利用不同的阈值处理方法进行图像中汽车及车牌的分割)%利用直方图阈值法对图像进行分割
clc
clear all
I=imread('car.bmp');
I1=rgb2gray(I);
figure;imshow(I);title('原图像');
figure;imhist(I1);title('直方图') ; %观察直方图,灰度110处有谷,确定阈值T=170 I2=im2bw(I1,170/400); %im2bw 函数需将灰度值转换到[0,1]范围内
figure;imshow(I2);title('分割图');
%利用Otsu算法法对图像进行分割
clc
clear all
I=imread('car.bmp');
I1=rgb2gray(I);
figure;imshow(I);title('原图像');
level=graythresh(I1); %确定灰度阈值
I2=im2bw(I1,level); %根据这个灰度阈值将灰度图像转换成而二值图形
figure;imshow(I2);title('Otsu分割图');。