好文档 - 专业文书写作范文服务资料分享网站

图像分割实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

.

评分

教育资料实验报告

课程名称 医学图像处理

实验名称 图像分割

专业班级 姓 名

学 号

实验日期

实验地点

2015—2016学年度第 2 学期

医学图像处理 一、 实验目的 掌握常用的边缘提取算法,从图像中提取感兴趣的区域,实现图像分割。在图像中,寻找灰度相同或相似的区域,区分图像中的背景区域和目标区域,利用Matlab实现图像的边缘检测,进行图像分割。 二、实验环境 1、硬件配置:Intel(R) Core(TM) i5-4210U CPU @1.7GHz 1.7GHz 安装内存(RAM):4.00GB 系统类型:64位操作系统 2、软件环境:MATLAB R2013b软件 三、实验内容 (包括本实验要完成的实验问题及需要的相关知识简单概述) 图像边缘是图像中特性(如像素灰度、纹理等)分布的不连续处,图像周围特性有阶跃变化或屋脊状变化的那些像素的集合。图像边缘存在于目标与背景、目标与目标、基元与基元的边界,标示出目标物体或基元的实际含量,是图像识别信息最集中的地方。 图像分割处理主要用于检测出图像中的轮廓边缘、细节以及灰度跳变部分,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。常用的分割方法是边缘检测。边缘检测是采用多种边缘算子实现突出图像边缘,抑制图像中非边缘信息,使图像轮廓更加清晰。 1. 梯度算子法 对于图像f(x,y),它在点f(x,y)处的梯度是一个矢量,定义为 ??f?f?G?f?x,y??????x?y?? ??梯度的方向在函数f(x,y)最大变化率的方向上,梯度的幅值为 22T??f???f?? ?f?? ???????x???y?梯度的数值就是f(x,y)在其最大变化率方向上的单位距离所增加的量。对于图像而言,微分运算可以用差分运算来近似。 ???x??y?f(x,y)?f(x?1,y)?f(x,y)?f(x,y?1) 简化成模板可以表示成如下形式: Robert梯度算子 ??10??01? ????0?1???10?当梯度计算完后,可采用以下几种形式突出图像的轮廓。 梯度直接输出 使各点的灰度g(x,y)等于该点的梯度,即 g(x,y)?G?f?x,y?? 这种方法简单、直接。但增强的图像仅显示灰度变化比较陡的边缘轮廓,而灰度变换比较平缓的区域则呈暗色。 加阈值的梯度输出 第2页 共14页

医学图像处理 加阈值的梯度输出表达式为 g(x,y)???G?f(x,y)??f(x,y)G?f(x,y)??T其他 式中,T是一个非负的阈值,适当选取T,既可以使明显的边缘得到突出,又不会破坏原来灰度变化比较平缓的背景。 给边缘指定一个特定的灰度级 g(x,y)???LG?f(x,y)G?f(x,y)??T其他 式中LG是根据需要指定的一个灰度级,它将明显的边缘用一个固定的灰度级表现,而其他的非边缘区域的灰度级仍保持不变。 给背景指定一个特定的灰度级 ?G?f(x,y)? g(x,y)???LGG?f(x,y)??T其他 该方法将背景用一个固定灰度级LG表现,便于研究边缘灰度的变化。 二值图像输出 在某些场合(如字符识别等),既不关心非边缘像素的灰度级差别,又不关心边缘像素的灰度级差别,只关心每个像素是边缘像素还是非边缘像素,这时可采用二值化图像输出方式,其表达式为 g(x,y)???LG?LBG?f(x,y)??T其他 此法将背景和边缘用二值图像表示,便于研究边缘所在位置。 2. Sobel算子法 Sobel相对于先对图像进行加权平均再做差分。 ?a?对于图像的3×3窗口d???gbehc?X?(c?2f?i)?(a?2d?g)f? ,设 ?Y?(a?2b?c)?(g?2h?i)i??则定义Sobel算子为 g(x,y)?X?2?Y122? 简化成模板可以表示成如下形式: 21???101??1???? 00Sobel模板 ?202 0????????101????1?2?1?? 3. 拉普拉斯运算法 第3页 共14页

医学图像处理 ?2f?2f拉普拉斯算子定义图像f(x,y)的梯度为?f??2 2?x?y2锐化后的图像g为 g?f?k?f 式中k为扩散效应系数。对系数k的选择要合理,太大会使图像中的轮廓边缘产生过冲;太小则锐化不明显。 ?2??0?10???10?1???1?1?1???????常用laplacian算子模板为 ?14?1,040 ,?18?1 ?????????0?10?????10?1????1?1?1??另外还有一些模板也常用于图像增强,如 11???101??1???? 00Prewitt模板 ?101 0????????101????1?1?1?? 四、实验结果与分析 (包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等) 注:本项可以增加页数 %例1 手动阈值分割 [I,map]=imread('cameraman.tif'); %读入图像 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 10009008007006005004003002001000 图1 原图 图2 直方图 图3 阈值分割后的二值图像 第4页 共14页

050100150200250医学图像处理 分析:手动阈值分割的阈值是取直方图中双峰的谷底的灰度值作为阈值,若有多个双峰谷底, 则取第一个作为阈值。本题的阈值取80。 %例2 迭代阈值分割 f=imread('cameraman.tif'); %读入图像 subplot(1,2,1);imshow(f); %创建一个一行二列的窗口,在第一个窗口显示图像 title('原始图像'); %标注标题 f=double(f); %转换位双精度 T=(min(f(:))+max(f(:)))/2; %设定初始阈值 done=false; %定义开关变量,用于控制循环次数 i=0; %迭代,初始值i=0 while~done %while ~done 是循环条件,~ 是“非”的意思,此 处done = 0; 说明是无限循环,循环体里面应该还 有循环退出条件,否则就循环到死了; 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)=0; %把小于初始阈值的变成黑的 f(r2)=1; %把大于初始阈值的变成白的 subplot(1,2,2); %创建一个一行二列的窗口,在第二个窗口显示图像 imshow(f); %显示图像 title('迭代阈值二值化图像'); %标注标题 图4原始图像 图5迭代阈值二值化图像 分析:本题是迭代阈值二值化分割,步骤是:1.选定初始阈值,即原图大小取平均;2.用初阈 值进行二值分割;3.目标灰度值平均背景都取平均;4.迭代生成阈值,直到两次阈值的灰 度变化不超过1,则稳定;5.输出迭代结果。 %例3 Laplacian算子和模板匹配法 第5页 共14页

图像分割实验报告

.评分教育资料实验报告课程名称医学图像处理实验名称图像分割专业班级
推荐度:
点击下载文档文档为doc格式
38imp8301652amw9lhr375cln2z0an008g3
领取福利

微信扫码领取福利

微信扫码分享