数字图像处理实验 图像分割
《数字图像处理》图像恢复和图像分割实验
《数字图像处理》图像恢复和图像分割实验1.实验目的1、熟悉并掌握MATLAB 图像处理工具箱的使用;2、理解并掌握常用的图像的恢复和分割技术。
2.实验环境MATLAB 6.5 以上版本、WIN XP 或 WIN2000 计算机3、实验内容与要求1、采用三种不同算子检测图像边缘,显示结果。
i=imread('C:\Users\skr\Desktop\lra.png')BW1 = edge(I,'prewitt');BW2 = edge(I,'zerocross');BW3 = edge(I,'canny');subplot(2,2,1);imshow(i);title('原图像-李荣桉 1909290239')subplot(2,2,2);imshow(BW1);title('prewitt 边缘图-李荣桉 1909290239')subplot(2,2,3);imshow(BW2);title('zerocross 边缘图-李荣桉 1909290239')subplot(2,2,4);imshow(BW3);title('canny 边缘图-李荣桉 1909290239')2、对二值图像分别进行方形模板3*3 和5*5 的膨胀和腐蚀操作,显示结果a=imread('C:\Users\skr\Desktop\lra.png')i = rgb2gray(a)I = im2bw(a,0.5)se3 = strel('disk',3);erodedBW1 = imerode(I,se3);se4 = strel('disk',5);erodedBW2 = imerode(I,se4);se1 = strel('ball',3,3);I1 = imdilate(a,se1);se2 = strel('ball',5,5);I2 = imdilate(a,se2);subplot(2,2,1);imshow(I1);title('3*3 膨胀图像-李荣桉 1909290239')subplot(2,2,2);imshow(I2);title('5*5 膨胀图像-李荣桉 1909290239')subplot(2,2,3);imshow(erodedBW1);title('3*3 腐蚀图像-李荣桉 1909290239') subplot(2,2,4);imshow(erodedBW2);title('5*5 腐蚀图像-李荣桉 1909290239')3、完成图像的阈值分割与边缘检测。
HALCON数字图像处理-第7章 图像分割
典型算子
一阶算子
Roberts算子利用局部差分算子寻找边缘,边缘定 位较准,但容易丢失一部分边缘,同时由于图像没有经过平滑 处理,因此不具有抑制噪声的能力。该算子对具有陡峭边缘且 含噪声少的图像处理效果较好。
Sobel算子很容易在空间上实现。Sobel算子边缘 检测器不但产生较好的边缘检测效果,同时因为Sobel算子引 入了局部平均,使其受噪声的影响也比较小。当使用较大的模 板时,抗噪声特性会更好,但是这样会增大计算量,并且得到 的边缘比较粗。
HALCON数字图像处理
Hough变换 Hough变换是一种检测、定位直线和解析曲线的有效方法。它是 把二值图变换到Hough参数空间,在参数空间用极值点的检测来完成 目标的检测。 在实际中由于噪声和光照不均等因素,使得在很多情况下所获 得的边缘点是不连续的,必须通过边缘连接将它们转化为有意义的 边缘,一般的做法是对经过边缘检测的图像进一步使用连接技术, 从而将边缘像素组合成完整的边缘。
HALCON数字图像处理
7.3 区域分割
区域分割利用的是图像的空间性质,认为分割出 来的属于同一区域的像素应具有相似的性质。传统的 区域分割方法有区域生长和区域分裂与合并,还有源 于地形学的分水岭分割。
HALCON数字图像处理
1、区域生长法
区域生长也称为区域生成,其基本思想是将一幅图 像分成许多小的区域,并将具有相似性质的像素集合起 来构成区域。
HALCON数字图像处理
典型算子 像素边缘提取和亚像素边缘提取
例如某CMOS摄像机芯片,其像素间距为5.2微米。两 个像素之间有5.2微米的距离,在宏观上可以看作是连在一起 的。但是在微观上,它们之间还有更小的东西存在,这个更小 的东西我们称它为“亚像素”。
实验六-图像分割
信息工程学院实验报告课程名称:数字图像处理实验项目名称:实验六图像分割实验时间: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 (拉普拉斯-高斯)算子的参数,观察处理结果。
数字图像处理中的图像分割方法探索与优化
数字图像处理中的图像分割方法探索与优化图像分割是数字图像处理中的一项关键任务,其主要目标是将图像分割成具有独立特征的不同区域。
图像分割技术在计算机视觉、图像识别、医学图像处理等领域有着广泛的应用。
本文将探索和优化数字图像处理中常用的图像分割方法,包括阈值分割、区域生长算法、边缘检测和基于机器学习的方法。
阈值分割是最简单也是最常用的图像分割方法之一。
该方法基于图像中像素的灰度值,将图像分割成具有不同灰度值的区域。
阈值分割的核心思想是选择一个合适的灰度值作为阈值,将图像中高于阈值的像素归为一个区域,低于阈值的像素归为另一个区域。
阈值的选择对分割结果至关重要,在实际应用中可以通过自适应阈值、Otsu方法等自动确定阈值的方法来优化分割结果。
区域生长算法是一种基于像素相似性的图像分割方法。
该方法从种子像素开始,通过生长规则逐渐将相邻像素合并成区域。
生长规则可以基于像素灰度值、颜色、纹理和空间关系等特征进行定义。
区域生长算法具有较强的自适应性和鲁棒性,但对于复杂的图像和噪声较多的图像可能会产生错误的分割结果。
为了解决这些问题,可以采用改进的生长规则、多种特征的组合,或者结合其他图像分割方法进行优化。
边缘检测是基于图像中边缘信息进行分割的方法。
边缘信息通常是图像中灰度值变化较大的地方,例如物体的边界或纹理边界。
常用的边缘检测算法包括Sobel算子、Canny算子和Laplacian算子等。
这些算法通过计算图像中像素灰度值的梯度或二阶导数,检测出边缘信息,并将边缘连接成闭合的边界。
然而,边缘检测方法容易受到图像噪声的影响,导致错误的分割结果。
因此,可以将边缘检测与其他方法结合,例如区域生长算法,以提高分割的准确性。
基于机器学习的图像分割方法是近年来较为热门的研究方向。
这些方法通过使用已标记的训练数据集,训练分类器或聚类算法来实现图像的自动分割。
常用的机器学习算法包括支持向量机、随机森林、神经网络等。
这些算法可以根据图像中的像素特征将其分类为不同的区域。
数字图像处理之图像分割
直方图阈值法matlab实现
• 函数:im2bw,全局阈值函数 • BW=im2bw(I ,level); • BW=im2bw(I ,map ,level); • BW=im2bw(RGB ,level); • 分别将灰度图像、索引图像、彩色图像转
化为二值图像, • level,为归一化阈值
例子
6.2.4 自适应阈值
自适应阈值是由Chow和Kaneko提出,它是一种基于区域统计特征 的分块域值方法。其算法原理是:将一幅图像划分为3535或6565的 互不重叠的图像块,求出每个子图像块的直方图及阈值,子图像的中心 像素点就使用求出的阈值,而区域内的其它像素点的阈值通过插值的方 法“自适应”地确定。
在利用阈值方法来分割灰度图像时一般都对图像有一定的假设。基于 一定的图像模型的。最常用的模型:
假设图像由具有单峰灰度分布的目标和背景组成,处于目标或背景内 部相邻象素间的灰度值是高度相关的,但处于目标和背景交界处两边的象 素在灰度值上有很大的差别。
如果一幅图像满足这些条件,它的灰度直方图基本上可看作是由分别 对应目标和背景的两个单峰直方图混合构成的。
• 一般的图像很难获得灰度的概率密度函数以及 先验概率,在一些特殊的应用场合,如文字、乐 谱等图像,可以从大量图像得到一个统计规律, 获得符号部分在全图像中的百分比,以此为基础, 结合直方图谷点分析,可以得到近似最优
• 的结果
若选为Zt分割门限,则将背景象素错认为是目标象素的概率
是:
E1 Zt
• 对i =1,2,…,N,Ri是连通的区域。
• 其中P(Ri)是对所有在集合Ri中元素的逻辑谓词,φ代表空 集。
图像分割—引言
图像分割的基本策略:
• 把像素按灰度划分到各个物体对应的 区域中去;
实验三数字图像分割处理
实验三数字图像分割处理一、实验目的1.熟悉并掌握图像分割处理的方法以及编程实现方法。
2.熟悉图像分割处理的过程。
二、实验内容图像分割是一种重要的图像分析技术。
图像分割是从图像预处理到图像识别和分析理解的关键步骤,在图像处理中展重要位置,一方面它是目标表达的基础,对特征测量有重要的影响,另一方面,图像分割以及基于分割的目标表达、特征提取和参数测量等将原始图像转化为更为抽象更为紧凑的形式,使得到更高层的图像识别、分析和理解成为可能。
典型而传统的分割方法可分为基于阈值的方法、基于边缘的方法和基于区域的分割方法等。
三、实验原理1、灰度阈值法是把图像的灰度分成不同等级,然后用设置灰度阈值的方法确定有意义的区域或欲分割物体的边界。
阈值T一般可写成:T=T[x,y,p(x,y),q(x,y)] (1)其中p(x,y)代表点(x,y)处的灰度值,q(x,y)代表该点邻域的某种局部特性.根据(1)式可将阈值分为全局阈值、局部阈值和动态阈值.如果T的选取只与p(x,y)有关,则是全局阈值,全局阈值是利用全局信息(例如整个图像的灰度直方图)得到的阈值,它仅与全图各像素的本身性质有关,对全图使用;如果T的选取与p(x,y),q(x,y)有关,则是局部阈值,它与图像局部区域性质有关,全局阈值和局部阈值也称为固定阈值;如果T的选取不仅与p(x,y),q(x,y)有关,还与该点的坐标(x,y)有关,则是动态阈值.动态阈值的选取是将原始图像分成若干个子图,然后利用某种固定阈值选取法对每一个子图确定一个阈值,再通过对这些子图所得阈值的插值得到对图像中每个像素进行分割所需的阈值。
2、边缘检测法Robert算子是一种利用局部差分算子寻找边缘的算子:g(x,y)={[f(x,y)-f(x+1,y+1)]^2+[f(x+1,y)-f(x,y+1)]^2}^1/2Laplacian算子是常用的边缘检测算子,它是各向同性的二阶导数。
Canny算子是由Gaussian卷积得到的边缘图像用抑制非极大值点的算法对梯度图像作后续处理。
数字图像处理图像分割
如果检测结果小于给定的阈值,就把两个区域合并。
5.3 区域分割
2 分裂合并法 实际中常先把图像分成任意大小且不重叠的区域,然后再
合并或分裂这些区域以满足分割的要求,即分裂合并法.一致 性测度可以选择基于灰度统计特征(如同质区域中的方差),假
设阈值为T ,则算法步骤为: ① 对于任一Ri,如果 V (Ri ) T ,则将其分裂成互不重叠的四
3 影响因素
多特征阈值分割
a 灰度及平均灰度(3×3区)二维直方图
--若集中于对角线区则表示灰度均匀 平均灰度
区。
边界
--若远离对角线者(灰度与平均灰度 不同)是区域边界。
背景
(近对角线构成直方图有明显峰值及阈 值,远离对角线者可用灰度平均值作为 阈值,用于区分两个区)。
目标 边界
灰度
3 影响因素 多特征阈值分割 b 灰度与灰度梯度图
5.4 Hough变换
Hough变换是一种检测、定位直线和解析曲线的有效 方法。它是把二值图变换到Hough参数空间,在参数空间 用极值点的检测来完成目标的检测。下面以直线检测为例, 说明Hough变换的原理。
域,直到区域不能进一步扩张; Step4:返回到步骤1,继续扫描直到所有像素都有归属,则结束整
个生长过程。
5.3 区域分割
1 区域生长法 区域生长法生长准则
基于区域灰度差方法
讨论:生长准则与欠分割或过分割现象
10477 10477 01555 20565 22564
11577 11577 11555 21555 22555
C1的平均值:1
m
ipi
iT 1 w1
(T )
1 w(T )
m
其中, ipi w00 w11 是整体图像的灰度平均值
数字图像处理_实验报告书(六)分割
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程序,对一幅图像进行基于形态学的边缘检测。
数字图像实验报告 图像分割
数字图像实验报告实验4 图像分割实验目的:1.了解图像分割的基本理论和方法;2.掌握对图像进行点、线和边缘检测的方法;3.掌握阈值分割的方法和阈值的选择;4.熟悉区域生长法和分水岭分割算法实验内容:1.对图片lung2.bmp和加噪声的lung3.bmp分别用3*3的sobel算子、prewitt算子、log算子、canny算子进行处理,根据处理结果分析上述算子,分别是什么类型的?有何作用?思考一下如何设计算子。
lung3.bmp为g = imnoise(f,”salt & pepper”,0.02)(0.02表示发生概率)f=imread('D:\大三第二学期\生物医学图像处理\实验5\lung2.bmp');g=imnoise(f, 'salt & pepper',0.02);[f1,fs]=edge(f, 'sobel');[f2,fp]=edge(f, 'prewitt');[f3,flog]=edge(f, 'log');[f4,fc]=edge(f, 'canny');f1=edge(f, 'sobel',fs);f2 =edge(f, 'prewitt',fp);f3 =edge(f, 'log',flog);f4 =edge(f, 'canny',fc);subplot(2,3,1);imshow(f) ,title( ['原图']);subplot(2,3,2);imshow(f1),title( ['sobel']);subplot(2,3,3);imshow(f2),title(['prewitt ']);subplot(2,3,4);imshow(f3),title([ ' log ']);subplot(2,3,5);imshow(f4),title( [' canny ']);[g1,gs]=edge(g, 'sobel');[g2,gp]=edge(g, 'prewitt');[g3,glog]=edge(g, 'log');[g4,gc]=edge(g, 'canny');g1=edge(g, 'sobel',gs);g2 =edge(g, 'prewitt',gp);g3 =edge(g, 'log',glog);g4 =edge(g, 'canny',gc);figure,subplot(2,3,1);imshow(g) ,title( ['原图']);subplot(2,3,2);imshow(g1),title( ['sobel']);subplot(2,3,3);imshow(g2),title([' prewitt ']);subplot(2,3,4);imshow(g3),title([ ' log ']);subplot(2,3,5);imshow(g4),title( [' canny ']);2.(1)对图片lung.bmp用im2bw进行处理,其分割的阈值分别设为0.05,0.15和0.7,分析哪个效果好(结合图像的直方图)。
数字图像处理:图像分割
数字图像处理:图像分割数字图像处理:图像分割前⾔:这个实验分成两部分代码,分别对应1和21. 膨胀:将与⽬标区域的背景点合并到该⽬标物中,使⽬标物边界向外部扩张的处理,把⼆值图像各1像素连接成分的边界扩⼤⼀层。
具体操作为:图像中关⼼的像素(结构元素B中值为1的部分)有1,则结果赋值为1,没有1,则赋值0。
腐蚀:消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法,把⼆值图像各1像素连接成分的边界点去掉从⽽缩⼩⼀层。
2. 开操作:先腐蚀再膨胀,可以去掉⽬标外的孤⽴点闭操作:先膨胀再腐蚀,可以去掉⽬标内的孔。
注:别忘了图⽚的路径改成⾃⼰的⼀、实验⽬的理解和掌握图像分割的基本理论和算法,练习使⽤形态学、区域、边界和阈值的⽅法结合图像增强复原的相关知识对图像进⾏分割处理。
⼆、实验内容1.读⼊⼀幅图像,对图像进⾏如下操作:(1) ⽤膨胀腐蚀等形态学⽅法对图像进⾏去噪、增强处理。
改变结构元素,观察处理后的图像是否有明显的差别。
(2) ⽤开操作和闭操作等形态学⽅法去除指纹图像中的细⼩颗粒,连接断裂的指纹。
(3) 在上⼀步⽤形态学⽅法处理后的指纹图像基础上,运⽤全局阈值实现图像的⼆值化。
2.读⼊⼀幅图像,利⽤边缘检测和分⽔岭⽅法(watershed)对图像进⾏前景分割。
在调⽤watershed函数前,利⽤prewitt算⼦或者全局阈值等⽅法增强图像边缘。
实验结果图如下:1. 第⼀部分实验结果(两种图⽚来观察结果,此外我在作腐蚀时改变了两种结构元素来进⾏观察)2. 第⼆部分实验结果(两种图⽚来观察结果):代码如下:###### 第⼀部分代码%⼿动实现膨胀和腐蚀%img=imread('finger_noise.tif');img=im2bw(imread('test.png'));figure('name','实验结果');number=5;% 定义number⾏图⽚subplot(number,3,1);imshow(img);title('原图');subplot(number,3,4);imshow(img);title('原图');subplot(number,3,7);imshow(img);title('原图');B=[0 1 01 1 10 1 0]; %结构元素[row,col]=size(img);%获得图像的⾼和宽%对img进⾏膨胀imgdilate=img;for i=2:row-1for j=2:col-1pitch=img(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))>0imgdilate(i,j)=1;%⾮零则赋值1elseimgdilate(i,j)=0;%零则仍赋值0endendendsubplot(number,3,2);imshow(imgdilate);title('膨胀后结果');%对img进⾏腐蚀imgerode=img;C=sum(B(:)); %结构元素B中关⼼的元素个数for i=2:row-1for j=2:col-1pitch=img(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))<Cimgerode(i,j)=0;elseimgerode(i,j)=1;endendendsubplot(number,3,3);imshow(imgerode);title('腐蚀后结果');B= [1 1 1;1 1 1;1 1 1]%更改结构元素[1 1 1;1 1 1;1 1 1],[1 0 1;0 1 0;1 0 1] %开操作(对腐蚀后的图像再进⾏⼀次膨胀)imgopen=imgerode;for i=2:row-1for j=2:col-1pitch=imgerode(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))>0 %⾮零则赋值1imgopen(i,j)=1;elseimgopen(i,j)=0;%零则仍赋值0endendendsubplot(number,3,5);imshow(imgopen);title('开操作后结果,结构元素为[1 1 1;1 1 1;1 1 1]');%闭操作(对膨胀后的图像再进⾏⼀次腐蚀)imgclose=imgdilate;C=sum(B(:)); %结构元素B中关⼼的元素个数for i=2:row-1for j=2:col-1pitch=imgdilate(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))<Cimgclose(i,j)=0;elseimgclose(i,j)=1;endendendsubplot(number,3,6);imshow(imgclose);title('闭操作后结果,结构元素为[1 1 1;1 1 1;1 1 1]');B= [1 0 1;0 1 0;1 0 1]%更改结构元素[1 1 1;1 1 1;1 1 1],[1 0 1;0 1 0;1 0 1] %开操作(对腐蚀后的图像再进⾏⼀次膨胀)imgopen=imgerode;for i=2:row-1for j=2:col-1pitch=imgerode(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))>0 %⾮零则赋值1imgopen(i,j)=1;elseimgopen(i,j)=0;%零则仍赋值0endendendsubplot(number,3,8);imshow(imgopen);title('开操作后结果,结构元素为[1 0 1;0 1 0;1 0 1]');%闭操作(对膨胀后的图像再进⾏⼀次腐蚀)imgclose=imgdilate;C=sum(B(:)); %结构元素B中关⼼的元素个数for i=2:row-1for j=2:col-1pitch=imgdilate(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))<Cimgclose(i,j)=0;elseimgclose(i,j)=1;endendendsubplot(number,3,9);imshow(imgclose);title('闭操作后结果,结构元素为[1 0 1;0 1 0;1 0 1]');subplot(number,3,10);imshow(imgdilate);title('原图');%确定全局阈值TT=0.5*(double(min(imgdilate(:)))+double(max(imgdilate(:))));%设置初始阈值为最⼤灰度和最⼩灰度值和的⼀半done=false;while ~doneg=imgdilate>=T;%分成两组像素,灰度值⼤于或者等于T的和灰度值⼩于T的Tnext=0.5*(mean(imgdilate(g))+mean(imgdilate(~g)));%新阈值两个范围内像素平均值和的⼀半done=abs(T-Tnext)<0.5; %0.5是⾃⼰指定的参数T=Tnext;endimout2=im2bw(imgdilate,T);subplot(number,3,11);imshow(imout2);title('膨胀后全局⼆值化');%确定全局阈值TT=0.5*(double(min(imgerode(:)))+double(max(imgerode(:))));%设置初始阈值为最⼤灰度和最⼩灰度值和的⼀半done=false;while ~doneg=imgerode>=T;%分成两组像素,灰度值⼤于或者等于T的和灰度值⼩于T的Tnext=0.5*(mean(imgerode(g))+mean(imgerode(~g)));%新阈值两个范围内像素平均值和的⼀半done=abs(T-Tnext)<0.5; %0.5是⾃⼰指定的参数T=Tnext;endimout3=im2bw(imgerode,T);subplot(number,3,12);imshow(imout3);title('腐蚀后全局⼆值化');第⼆部分代码%pic =imread('finger.tif')pic =imread('rice.tif')number=2subplot(number,3,1);imshow(pic);title('原图');% 使⽤prewitt算⼦增强G=imfilter(pic,fspecial('prewitt'));%⽣成’prewitt’模板,并对输⼊图像做边缘增强,再加上原图像subplot(number,3,2);imshow(G);title('prewitt算⼦增强后图像');L=watershed(G); %分⽔岭算法wr=L==0; %取出边缘subplot(number,3,3);imshow(wr);title('分⽔岭');pic(wr)=255;subplot(number,3,5);imshow(uint8(pic));title('前景分割结果');。
遥感数字图像处理图像分割与线性地物信息提取实验报告
(2)线性地物信息提取效果较好,能够准确地提取出不同的线性地物信息,如 道路、河流等。
1.
实验总结与展望
通过本次实验,我们学习了利用 ENVI 软件进行 RS 图像分割和线性地物信息提
取的方法。我们发现,分割和信息提取的效果都受到算法和参数的选择影响。因
此,在实际应用中,需要根据不同的场景和需求选择合适的算法和参数,以达到
最佳的处理效果。同时,我们也需要注意图像预处理的重要性,它能够有效地提
高后续处理的准确性和可靠性。
未来,随着遥感技术的不断发展和应用场景的扩大,RS 图像分割和信息提取的 需求也将越来越大。因此,我们需要不断学习和掌握最新的算法和技术,以应对 不同场景和需求的处理要求,并且不断完善和优化处理流程,提高处理效率和精 度。
1.
实验背景与目的
遥感图像是一种重要的地学信息获取手段,可以获取大面积的地表信息。但是, 由于图像中存在着大量的地物信息,对于这些信息的快速、准确的提取是遥感研
究中的一个重要问题。本实验旨在利用 ENVI 软件对 RS 图像进行分割,并提取 其中的线性地物信息,为遥感图像处理提供实际的应用。
1.
实验步骤
(1)数据准备:获取需要处理的遥感图像,并导入 ENVI 软件中。
(2)图像预处理:对导入的遥感图像进行预处理,包括辐射校正、大气校正、 几何校正等,以便于后续的处理。
(3)图像分割:利用 ENVI 软件提供的图像分割工具,对遥感图像进行分割。 其中,可以根据需要选择不同的分割算法和参数设置,以达到最佳的分割效果。
(4)线性地物信息提取:根据已分割好的图像,利用 ENVI 软件提供的特征提
取工具,提取其中的线性地物信息。其中,可以根据需要选择不同的特征提取算 法和参数设置,以达到最佳的信息提取效果。
数字图像处理-图像分割
分水岭对应于原始图像中的边缘
分水岭形成示意图
48
49 of 36
自动阈值
MATLAB函数
L=watershed(f)
分水岭算法
原始图像
分水岭
分割结果
局部极小值
不准确标记分水岭算法导致过分割
49
50 of 36
自动阈值
改进的分水岭算法
原始图像
原图像的距离变换
标记外部约束
标记内部约束
由标记内外部约 束重构的梯度图
点检测的结果
改变阈值 的结果
线检测
通过比较典型模板的计算值,确定一个点是否在某 个方向的线上 你也可以设计其它模板:
模板系数之和为0 感兴趣的方向系数值较大 -1 2 -1 2 -1 2 -1 -1 -1 2 2 -1 -1 -1 2 2 -1 -1 2 -1 -1 2 -1 -1
-1
-1
-1
2
-1
39 of 36
自动阈值—迭代法
基本思想:开始时选择一个阈值作为初始估计值,
然后按某种策略不断地改进这一估计值,直到满足
给定的准则为止。在迭代过程中,关键之处在于选
择什么样的阈值改进策略,好的阈值的改进策略应
该具备两个特征,一是能够快速收敛,二是在每一
个迭代过程中,新产生阈值优于上一次的阈值。
自动阈值—迭代法
2
e
1 2
2
x
2
y2
对图像进行线性平滑,在数 学上是进行卷积。
g x , y G x , y, f x, y
再提出用拉普拉斯算子来替代以减少后期的运算量,即用下 式的零交叉点作为边缘点。
2 2 2 2 x y G G 1 x y 2 2 2 G x, y, 2 2 1 e 2 x y 4 2
数字图像处理实验7 图像分割
实验7 图像分割一.实验目的:1.掌握点、线检测的模板、基本原理和方法。
2.掌握使用edge函数进行边缘检测的技术。
二.实验内容:1.构造点、线、边缘检测的模板1.利用MATLAB标准函数edge进行点、线、边缘检测三.实验原理:1.点检测使用以前学过的MATLAB标准函数imfilter运用点检测模板进行孤立点的检测。
嵌在常数区域(或图像中亮度基本不变的区域)中的孤立点检测,使用下列模板:若|R| >= T,则就说在掩模的中心位置已检测出了一个孤立的点。
显然,当掩模的中心点位于一个孤立点时,其模板的的相应最强,而在亮度不变的区域中响应为零。
>> w = [-1 -1 -1; -1 8 -1; -1 -1 -1]>> g = abs(imfilter(double( f )), w)>> T = max( g(:) )>> g = g >= T>>imshow(g)2.线检测>> w = [2 -1 -1; -1 2 -1; -1 -1 2] %建立-45度方向线检测模板>> g = imfilter(double(f), w) %注意与f没有转换为double型的对比>> imshow(g, [ ]) %Fig.10.4(b)>> gtop = g(1:120, 1:120) %取出一个子图像>> gtop = pixeldup(gtop, 4) %放大4倍,原图像大小>> fugure, imshow(gtop, [ ]) %Fig.10.4(c)>> gbot = g(end-119 : end, end-119 : end)>> gbot = piexldup(gbot, 4)>> figure, imshow(gbot, [ ]) %Fig.10.4(d)>> g = abs(g)>> figure, imshow(g, [ ]) %Fig.10.4(e)>> T = max(g(:))>> g = g >= T>> figure, imshow(g) %Fig.10.4(f)3.边缘检测使用edge函数进行边缘检测,依据是一阶和二阶导数。
实验三图像分析实验——图像分割、形态学及边缘与轮廓分析
实验三图像分析实验——图像分割、形态学及边缘与轮廓分析一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、熟悉图像形态学分析的基本原理,观察不同形态学方法处理的结果;2、熟悉图像阈值分割、区域生长、投影及差影检测和模板匹配的基本原理,观察处理的结果;3、熟悉图像边缘检测、Hough平行线检测、轮廓提取及跟踪和种子填充的基本原理,观察处理的结果;4、了解图像矩、空穴检测、骨架提取的基本原理,观察处理的结果。
三、实验原理本次实验侧重于演示观察,由于内容繁多,并且系统中已有部分实验项目的原理说明,因此实验原理及编程实现步骤这里不再详细叙述,有兴趣的同学可以查阅数字图像处理方面的有关书籍。
四、实验内容1、图像形态学分析内容包括:图像膨胀、图像腐蚀、开运算、闭运算和图像细化针对二值图像进行处理,有文字说明,实验步骤中将详细介绍其使用方法。
2、图像分割内容包括:阈值分割、区域生长、投影检测、差影检测和模板匹配阈值分割:支持灰度图像。
从图库中选择图像分割中的源图, 然后执行图像分析→图像分割→阈值分割, 比较原图和分割后的图, 对照直方图分析阈值分割的特点。
对源图再执行一次图像变换→点运算→阈值变换, 比较分析阈值变换和阈值分割的结果。
区域生长:支持灰度图像。
操作方法与阈值分割类似,比较分析其与阈值分割的不同。
投影检测:只支持二值图像。
从图库中选择投影检测中的源图, 然后执行图像分析→投影检测→水平投影, 然后再垂直投影, 记录下检测部分的水平和垂直方向的位置。
如有必要, 在检测之前, 对图像进行平滑消噪。
差影检测:支持灰度图像。
从图库中选择图像合成中的源图, 然后执行图像分析→图像合成→图像相减, 在弹出的文件对话框中选择图库图像合成中的模板图像,观察分析差影结果。
模板匹配:支持灰度图像。
从图库中选择模板匹配中的源图, 然后执行图像分析→模式识别→模板匹配, 在弹出的文件对话框中选择图库模板匹配中的模板图像, 观察分析结果。
《数字图像处理(实验部分)》实验8_图像分割
《数字图像处理(实验部分)》教案实验八:图像分割1.实验目的1.掌握MATLAB 的基本操作。
2.了解数字图像处理在MATLAB中的基本处理过程。
3.学习图像分割的原理,观察算法处理结果2.实验设备2.1.PC 兼容机一台;操作系统为WindowsWindowsXP。
2.2.数字图像处理开发环境:MATLAB软件3.实验原理图像分割:运用阀值分割法,通过观察直方图的谷值,选取分割的阀值T为该谷值,将图像分割为背景和目标两部分。
4.实验步骤.1 打开MA TLAB开发环境.2点击MA TLAB窗口上File菜单,选择New-〉M—File,在弹出的Edit编辑器内输入如下程序:I=imread('cameraman.tif');figure(1);subplot(2,2,1),imshow(I);title('原图');subplot(2,2,2),imhist(I);title('直方图,取波谷为阈值'); % 观察灰度直方图,灰度80处有谷,确定阈值T=80I1=im2bw(I,80/255); % im2bw函数将图像根据给定阈值转换为二值图像,阈值需要转换到[0,1]范围内subplot(2,2,3),imshow(I1);title('自带函数分割图');I2=I;k=find(I<=80);%返回满足条件的索引号I2(k)=0;g=find(I>80);I2(g)=255;subplot(2,2,4),imshow(I2);title('阈值分割图');.3将该程序保存,并点击工具栏中Run按钮,程序会自动运行,并显示出结果。
.4 观察处理结果5.实验结果分割后图像中前景部分被凸现出来,背景部分被去除。
01002006.问题与思考总结MATLAB开发环境在使用上的特点,掌握其在实验中使用方法。
改变程序中的参数,重新运行程序,观察会是什么结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验名称实验四图像分割
课程名称数字图像处理A
姓名成绩
班级学号
日期地点
1.实验目的
(1)了解并掌握图像分割的基本原理;
(2)编写程序使用Hough变换处理图像,进行线检测;
(3)编写程序使用阈值处理方法进行图像分割,根据实验结果分析效果;
(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2.实验环境(软件条件)
Windws2000/XP
MATLAB 7.0
3.实验方法
对256级灰度的数字图像camera.bmp(如图4.1所示)和car.bmp(如图4.2所示)进行如下处理:
(1)对图像camera.bmp进行Hough变换进行线检测,显示处理前、后图像:
思考如何利用Hough变换进行圆检测;
(2)对图像car.bmp分别利用不同的阈值处理方法进行图像中汽车及车牌的分割,显示处理前、后图像;思考不同的阈值处理算法对分割效果的影响?
4.实验分析
实验原理
Hough变换是最常用的直线提取方法,它的基本思想是:将直线上每一个数据点变换为参数平面中的一条直线或曲线,利用共线的数据点对应的参数曲线相交于参数空间中一点的关系,使直线的提取问题转化为计数问题。
Hough变换提取直线的主要优点是受直线中的间隙和噪声影响较小。
思考:
Hough变换对圆的检测:
Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。
圆的方程为:222
()()
x a y b r
-+-=,通过Hough变换,将图像空间(,)
x y对应到参数空间(,,)
a b r。
第一题结果图
图4.1 实验图像camera.bmp 图4.2 实验图像car.bmp
\T \R -500
50
-300
-200
-100
第二题
实验原理:基于灰度的分割最简单的处理思想是,高于某一灰度的像素划分到一个区域中,低于某灰度的像素划分到另一区域中,这种基于灰度阈值的分割方法称为灰度门限法。
最简单的灰度分割方法—灰度门限法,他是基于灰度阈值的分割方法,也是基于区域的分割方法。
主要将高于某一灰度的像素划分到一个区域中,低于某灰度的像素划分到另一区域中。
结果图
思考:
直方图阈值法:理论分析和实验结果表明,该方法分割效果好,运算速度快,具有较高的实用价值。
Otsu 法:该方法选取出来的阈值非常理想,对各种情况的表现都较为良好。
虽然它在很多情况下都不是最佳的分割,但分割质量通常都有一定的保障,可以说是最稳定的分割。
直方图阈值法
原图像
0100200
直方图分割后的图像
Otsu 法
原图像
分割后的图像
5.实验结论
Matlab 提供了三个与Hough 变换有关的函数:Hough 函数,Houghpeaks 函数和Houghlines 函数。
在算法实现中,考虑到噪声的影响和参数空间离散化得需要,求交点的问题成为一个累加器问题。
直方图阈值法:利用灰度直方图求双峰或多峰,选择两峰之间的谷底作为阈值。
自动阈值法:Otsu 法。
Otsu 法是使类间方差最大而推导出的一种能自动确定阈值的方法,具有简单,处理速度快的特点。
在Matlab 工具箱中,Graythresh 函数基于Otsu 算法求取灰度阈值。
Graythresh 函数的语法格式为:level=fraythresh(I).
附件
第一题源程序
clear all ;
RGB = imread('C:\Documents and Settings\Administrator\桌面\camera.bmp');
I=RGB;
%I = rgb2gray(RGB);
BW = edge(I,'canny'); % 利用Canny算子提取图像边缘
[H,T,R] = hough(BW,'RhoResolution',0.5,'ThetaResolution',0.5); subplot(121)
imshow(T,R,H,[],'notruesize'), axis on, axis normal
xlabel('\T'), ylabel('\R')
p = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));
%找到5个较明显的Hough变换峰值
hold on
plot(T(p(:,2)),R(p(:,1)),'s','color','white');
lines = houghlines(BW,T,R,p,'FillGap',10,'MinLength',10);
%查找并链接线段
figure, imshow(BW), hold on%在二值图中叠加显示这些线段
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
end
第二题源程序
%用直方图阈值法
I=imread('C:\Documents and Settings\Administrator\桌面\car.bmp');
subplot(2,2,1);
imshow(I);
title('原图像');
I1=rgb2gray(I);
subplot(2,2,2);
imhist(I1);
title('直方图');
subplot(2,2,3);
I2=im2bw(I1,165/415);
imshow(I2);
title('分割后的图像');
%用Otsu算法
I=imread('C:\Documents and Settings\Administrator\桌面\car.bmp');
subplot(2,1,1);
imshow(I);
title('原图像');
subplot(2,1,2);
level=graythresh(I);
BW=im2bw(I,level);
imshow(BW);
title('分割后的图像');。