尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【基础教程】基于matlab图像处理图像分割【含Matlab源码 191期】

【基础教程】基于matlab图像处理图像分割【含Matlab源码 191期】 0 获取代码方式获取代码方式1通过订阅紫极神光博客付费专栏凭支付凭证私信博主可获得此代码。获取代码方式2完整代码已上传我的资源【基础教程】基于matlab图像处理图像分割【含Matlab源码 191期】备注订阅紫极神光博客付费专栏可免费获得5份代码有效期为订阅日起三天内有效1 图像分割技术图像分割 : 根据灰度 , 颜色 , 纹理等将图像进行分割。2 常用的分割技术2.1 边缘检测法边缘是图像的最重要的特征。边缘是指周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘检测主要是灰度变化的度量、检测和定位。有很多种不同的边缘检测方法同一种方法使用的滤波器也不尽相同。图像边缘检测就是研究更好的边缘检测方法和检测算子。边缘检测的基本思想1利用边缘增强算子突出图像中的局部边缘2然后定义像素的“边缘强度”通过设置阈值的方法提取边缘点集。由于噪声和模糊的存在监测到的边界可能会变宽或在某点处发生间断。边界检测包括两个基本内容i. 用边缘算子提取出反映灰度变化的边缘点集ii. 在边缘点集合中剔除某些边界点或填补边界间断点并将这些边缘连接成完整的线常用的检测算子有拉普拉斯边缘检测算法、Robert边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Canny边缘检测算子。五种边缘检测算法比较clear;close all;Iimread(houzi.jpg);I0rgb2gray(I);subplot(231);imshow(I);Robert边缘定位精度较高对于陡峭边缘且噪声低的图像效果较好但没有进行平滑处理没有抑制噪声的能力。sobel和prewitt进行了平滑处理对噪声具有一定抑制能力但容易出现多像素宽度。Laplacian对噪声较为敏感使噪声能力成分得到加强容易丢失部分边缘方向信息造成一些不连续的检测边缘同时抗噪声能力较差。log抗噪声能力较强但会造成一些尖锐的边缘无法检测到。canny最优化思想的边缘检测算子同时采用高斯函数对图像进行平滑处理但会造成将高频边缘平滑掉造成边缘丢失采用双阈值算法检测和连接边缘。2.1.1 微分算子1Canny 算子2 LOG算子函数 edge ( )Iimread(rice.png);Iim2double(I);Jimnoise(I,gaussian,0,0.005);[K,thresh]edge(J,Log,[],2.3);figure;subplot(121),imshow(I);subplot(122),imshow(K);2.1.2 常见的微分算子1 Sobel算子函数 edge ( )Iimread(rice.png);%RGB彩色图%imshow(I);Irgb2gray(I);[J,thresh]edge(I,sobel,[],horizontal);figure;subplot(121);imshow(I);subplot(122);imshow(J);2 Roberts 算子函数 edge ( )Iimread(rice.png);Iim2double(I);[J,thresh]edge(I,Roberts,35/255);%边缘检测,roberts算子,阈值为归一化后的35/255figure;subplot(121),imshow(I);subplot(122),imshow(J);3 Prewit 算子函数 edge ( )Iimread(rice.png);%Iimread(rice.png);Iim2double(I);[J,thresh]edge(I,prewitt,[],both);%默认阈值,从水平和竖直方向进行设置 figure;subplot(121);imshow(I);subplot(122);imshow(J);2.2 阈值分割法阈值分割法是最经典最流行的图像分割方法之一 , 也是最简单的分割方法 。其关键是找合适的灰度阈值通常是根据图像的灰度直方图来选取 阈值分割特别适用于目标和背景处于不同灰度级范围的图像。2.2.1 全局阈值直方图显示clear,clc;Iimread(rice.png);subplot(121),imshow(I);subplot(122),imhist(I,200);%直方图显示全局阈值分割clear,clc;Iimread(rice.png);JI120;%全局阈值为120,波谷大概是120KI130;%全局阈值为130figure;subplot(131),imshow(I);subplot(132),imshow(J);subplot(133),imshow(K);2.2.2 Otsu阈值分割Iimread(rice.png);Iim2double(I);Tgraythresh(I);%获取阈值 Jim2bw(I,T);%图像分割subplot(121),imshow(I);subplot(122),imshow(J);2.2.3 迭代式阈值分割法clear,clc Iimread(rice.png);Iim2double(I);T00.01;%精度%T1graythresh(I)%用Otsu求阈值 T1min(I(:))max(I(:))/2;%初始估计阈值 r1find(IT1);%找出比阈值大的像素 r2find(IT1);%找出比阈值小的像素 T2(mean(I(r1))mean(I(r2)))/2;%各个像素加和求平均whileabs(T2-T1)T0%T1T2;r1find(IT1);r2find(IT1);T2(mean(I(r1))mean(I(r2)))/2;end Jim2bw(I,T2);subplot(121),imshow(I);subplot(122),imshow(J);2.3 区域分割法将相邻的具有同种性质的像素或其他区域归并刀目前的区域中从而逐步增长区域相似性度量 : 平均灰度值, 纹理, 颜色缺点 : 往往造成过度分割取决分割好坏的三个因素 : 种子点的选取 生长规则 终止条件2.3.1 分水岭分割clear,clc;Iimread(Gray.jpg);Jwatershed(I,4);%4个连通区域,默认为8subplot(121),imshow(I);subplot(122),imshow(J);2.3.2 区域生长分割根据统一物体区域的像素相似性来聚集像素点达到区域生长的方法。其中由一组表示不同区域的种子像素开始逐步合并种子周围相似的像素从而扩大区域。直到无法合并像素点或小领域为止。其中区域内的相似性的度量可用平均灰度值、纹理、颜色等等信息。关键在于选择初始种子像素及生长准则。最早的区域生长图像分割方法是由Levine等人提出。2.3.3 区域分离聚合分割区域分裂合并法Gonzalez2002确定分裂合并的准则然后将图像任意分成若干互不相交的区域按准则对这些区域进行分裂合并。它可用于灰度图像分割及纹理图像分割。3 基于能量泛函的分割方法该类方法主要指的是活动轮廓模型active contour model以及在其基础上发展出来的算法其基本思想是使用连续曲线来表达目标边缘并定义一个能量泛函使得其自变量包括边缘曲线因此分割过程就转变为求解能量泛函的最小值的过程一般可通过求解函数对应的欧拉(EulerLagrange)方程来实现能量达到最小时的曲线位置就是目标的轮廓所在。活动轮廓模型逐渐形成了不同的分类方式较常见的是根据曲线演化方式的不同将活动轮廓模型分为基于边界、基于区域和混合型活动轮廓模型。按照模型中曲线表达形式的不同活动轮廓模型可以分为两大类参数活动轮廓模型parametric active contour model和几何活动轮廓模型geometric active contour model。3.1 参数活动轮廓模型parametric active contour modelSnake模型ASM(Active Shape Model)AAM(Active Appearance Models)CLM(Constrained local model)有约束的局部模型3.2 几何活动轮廓模型几何活动轮廓模型的曲线运动过程是基于曲线的几何度量参数而非曲线的表达参数因此可以较好地处理拓扑结构的变化并可以解决参数活动轮廓模型难以解决的问题。而水平集Level Set方法Osher1988的引入则极大地推动了几何活动轮廓模型的发展因此几何活动轮廓模型一般也可被称为水平集方法。3 备注版本2014a添加链接描述
返回列表