资源描述:
《基于matlab的医学图像增强与边缘检测算法的实验研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、专业综合实验报告---数字图像处理专业:电子信息工程班级:110406姓名:顾江飞学号:20111610指导教师:王昕2014年7月18日设计一基于matlab的医学图像边缘检测算法的研究一、设计目的运用多种算法对医学图像进行边缘检测,取得更丰富的医学图像边缘信息,以便于医学图像的进一步处理。二、设计内容和要求利用各种微分算子—Roberts算子、Prewitt算子、Sobel算子、Laplacian算子和Canay算子分别对图像进行边缘检测,得到不同的方法对图像边缘检测的结果图。最后得出可以对医学图像实现边缘定位,为医学
2、图像进一步的测量或识别做准备,能对医学图像中病灶部位特征加以明确区分。三、设计步骤1.打开计算机,运行matlab程序2.用各种算法处理图片3.认真详实的记录实验过程和结果四、实验所需设备及软件计算机一台、移动式存储器、matlab软件五、设计报告内容1.材料对于一幅医学图片,分别用Roberts算子、Prewitt算子、Sobel算子、Laplacian算子和Canny算子对图像进行边缘提取。2.方法边缘检测是空域微分算子(实际上是微分算子的差分近似)利用卷积来实现的。常用的微分算子有梯度算子、拉普拉斯算子和Canny算
3、子等,这些算子不但可以检测图像的二维边缘,还可检测图像序列的三维边缘。边缘提取方法是考察图像的每个像素的某个领域内灰度的变化,利用邻域邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘,称为微分算子法。2.1梯度算子根据参考文献,梯度对应于一阶导数,相应的梯度算子就对应于一阶导数算子。对于一个连续函数f(x,y),它的位置(x,y)的梯度可表示为一个矢量,其在(x,y)处的梯度定义如下。(1)这个矢量的幅度(即简称为梯度)和方向角分别为:(2)(3)式(1)~(3)中的偏导数需要对每一个像素位置进行计算,运算量大,在实际
4、应用中常常采用小区域模板卷积来近似计算,GX和GY各自使用一个模板。最简单的是Roberts算子,其模板如下:(4)较复杂的常用模板有Prewitt算子和Sobel算子,分别如(5)和(6)所示:(5)(6)利用Matlab图像工具箱中的edge函数,对以上算子来检测图像边缘.edge函数提供许多微分算子模板,在检测边缘时可以指定一个灰度阈值,只有满足这个阈值条件的点才视为边界点。Edge函数基本格式为:BW=edge(I,’type’,parmeter,…)其中,I表示输入图像,type表示使用的算子类型,parmete
5、r则是与具体算子有关的参数。2.2拉普拉斯算子和Canny算子拉普拉斯算子(Laplacian)是一种二阶导数算子。对于一个连续函数f(x,y)处的拉普拉斯算子定义如下:(7)在图像处理过程中,拉普拉斯算子也可借助各种模板来实现。对模板的基本要求是:对应中心像素的系数为正,其余相邻像素的系数为负,并且所有系数的和应该为零。常用的2种模板如式(8)所式。(8)Canny边缘检测是一种比较新的边缘检测算子,该方法与其他边缘检测方法的不同之处在于,它使用两种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘与强边缘相连时,才将弱边
6、缘包含在输出图像中,因此这种方法较其他方法而言不容易被噪声“填充”,更容易检查出真正的弱边缘。程序:blood=imread('1.jpg');[x,y,z]=size(blood);%求出图象大小b=double(blood);N=sqrt(100)*randn(x,y,z);%生成方差为10的白噪声I=b+N;%噪声干扰图象fori=1:x;%实际图象的灰度为0~255forj=1:yif(I(i,j)>255)I(i,j)=255;endif(I(i,j)<0)I(i,j)=0;endendendz0=max(max
7、(I));%求出图象中最大的灰度z1=min(min(I));%最小的灰度T=(z0+z1)/2;TT=0;S0=0;n0=0;S1=0;n1=0;allow=0.5;%新旧阈值的允许接近程度d=abs(T-TT);count=0;%记录几次循环while(d>=allow)%迭代最佳阈值分割算法count=count+1;fori=1:xforj=1:yif(I(i,j)>=T)S0=S0+I(i,j);n0=n0+1;endif(I(i,j)8、n0;T1=S1/n1;TT=(T0+T1)/2;d=abs(T-TT);T=TT;endSeg=zeros(x,y);fori=1:xforj=1:yif(I(i,j)>=T)Seg(i,j)=1;%阈值分割的图象endendendSI=1-Seg;%阈值分割后的图象求反,便于用腐蚀算法求边缘se1=