边缘检测、阈值处理和区域生长

《医学图像处理》实验报告

实验十三:边缘检测、阈值处理和区域生长

日期: 2014年05月27日

摘要

本次实验的目的是:

? 了解边缘检测原理,用梯度阈值法,使用Sobel算子结合平滑处理和阈值处理提取边缘,; ? 了解阈值处理的计算方法,进行全局阈值和Otsu(大律法)阈值处理。 ? 了解区域生长原理。对图像做区域生长提取图像特征。

本次实验的内容是: ? 阈值处理 ? 全局阈值处理

? OTSU(大律法)阈值处理 ? 梯度法检测边缘 ? 区域生长

1

一、技术讨论

1.1实验原理

1.1.1图像的边缘检测

边缘:是指图像局部特征的不连续性。灰度或结构信息的突变。

边缘检测:一种定位二维或三维图像(特别是医学图像)中的对象的边缘的系统。通过输入端(310)接收表示该图像的各元素值的数据元素集。该数据集被存储在存储装置(320)中。处理器(340)确定该图像中的对象的边缘。该处理器计算所述数据元素的至少一阶和/或二阶导数,并且计算该图像的等照度线曲率,所述曲率由κ标识。该处理器还确定校正因数α,该校正因数α对于由对象的曲率和/或所述数据的模糊造成的边缘错位进行校正。该校正因数α取决于所述等照度线曲率κ。然后,该处理器确定取决于所计算出的导数和所述等照度线曲率的算子的过零点。该系统的输出端(330)提供对于该图像中的边缘位置的指示。

1.1.2图像的Sobel梯度算子

主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。 该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。公式如下:

计算梯度方向公式如下:

在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。

1.1.3全局阈值法

全局阈值是指整幅图像使用同一个阈值做分割处理,适用于背景和前景有明显对比的图像。它是根据整幅图像确定的:T=T(f)。但是这种方法只考虑像素本身的灰度值,一般不考虑空间特征,因而对噪声很敏感。常用的全局阈值选取方法有利用图像灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值法以及其它一些方法。

1.1.4最佳阈值法(Otsu算法) 该方法是根据图像的灰度特征,将图像划分为目标和背景两种类型。目标类和背景类之间的类间方差越大,说明图像的目标和背景之间的差别越大。当背景类信息被错误的分为目标类信息,或目标类信息被错误的分为背景类信息时,都会导致目标和背景之间的差别变小。正是由于这一特性,只要使类间方差最大或类内方差最小,这样的分割就意味着最小的误差,并且根据该准则选取最佳阈值使得目标和背景之间的分离性最好。

2

1.1.5区域生长

区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。这样一个区域就长成了。

1.2实验函数

cvThreshold阈值处理.

void cvThreshold( const CvArr* src, CvArr* dst,

double threshold, double max_value, int threshold_type )

src:输入图像; dst:输出图像; threshold:阈值;

cvCreateTrackbar创建trackbar并将它添加到指定的窗口。

CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) );

int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change );

trackbar_name被创建的trackbar名字。 window_name窗口名字

value整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。 count滑块位置的最大值。最小值一直是0。

on_change每次滑块位置被改变的时候,被调用函数的指针

3

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4