【基础教程】基于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;
I=imread('houzi.jpg');
I0=rgb2gray(I);
subplot(231);
imshow(I);

在这里插入图片描述
Robert:边缘定位精度较高,对于陡峭边缘且噪声低的图像效果较好,但没有进行平滑处理,没有抑制噪声的能力。
sobel和prewitt:进行了平滑处理,对噪声具有一定抑制能力,但容易出现多像素宽度。
Laplacian:对噪声较为敏感,使噪声能力成分得到加强,容易丢失部分边缘方向信息,造成一些不连续的检测边缘,同时抗噪声能力较差。
log:抗噪声能力较强,但会造成一些尖锐的边缘无法检测到。
canny:最优化思想的边缘检测算子,同时采用高斯函数对图像进行平滑处理,但会造成将高频边缘平滑掉,造成边缘丢失,采用双阈值算法检测和连接边缘。

2.1.1 微分算子
(1)Canny 算子
(2) LOG算子
函数 edge ( )

I = imread('rice.png');
I = im2double(I);
J = imnoise(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 ( )

I = imread('rice.png'); %RGB彩色图
% imshow(I);
I = rgb2gray(I);
[J, thresh] = edge(I, 'sobel', [], 'horizontal');
figure;
subplot(121);imshow(I);
subplot(122);imshow(J);

在这里插入图片描述

(2) Roberts 算子
函数 edge ( )

I = imread('rice.png');
I = im2double(I);
[J, thresh] = edge(I, 'Roberts', 35/255); %边缘检测 ,roberts算子, 阈值为归一化后的35/255
figure;
subplot(121),imshow(I);
subplot(122),imshow(J);

在这里插入图片描述

(3) Prewit 算子
函数 edge ( )


I = imread('rice.png');
% I = imread('rice.png');
I = im2double(I);
[J, thresh] = edge(I, 'prewitt', [], 'both');%默认阈值, 从水平和竖直方向进行设置
figure;
subplot(121);imshow(I);
subplot(122);imshow(J);

在这里插入图片描述;

2.2 阈值分割法
阈值分割法是最经典最流行的图像分割方法之一 , 也是最简单的分割方法 。其关键是找合适的灰度阈值,通常是根据图像的灰度直方图来选取, 阈值分割特别适用于目标和背景处于不同灰度级范围的图像。

2.2.1 全局阈值
直方图显示

clear,clc;
I = imread('rice.png');
subplot(121),imshow(I);
subplot(122),imhist(I, 200); %直方图显示

在这里插入图片描述

全局阈值分割

clear,clc;
I = imread('rice.png');
J = I > 120; %全局阈值为120 , 波谷大概是120
K = I > 130; %全局阈值为130
figure;
subplot(131),imshow(I);
subplot(132),imshow(J);
subplot(133),imshow(K);

在这里插入图片描述

2.2.2 Otsu阈值分割

I = imread('rice.png');
I = im2double(I);
T = graythresh(I); %获取阈值
J = im2bw(I, T); %图像分割
subplot(121),imshow(I);
subplot(122),imshow(J);

2.2.3 迭代式阈值分割法

clear, clc
I = imread('rice.png');
I = im2double(I);
T0 = 0.01; %精度
% T1 = graythresh(I) %用Otsu求阈值
T1 = min(I(:)) + max(I(:)) / 2; %初始估计阈值
r1 = find(I > T1); %找出比阈值大的像素
r2 = find(I <= T1); %找出比阈值小的像素
T2 = (mean(I(r1)) + mean(I(r2))) / 2; %各个像素加和求平均
while abs(T2 - T1) < T0 %
    T1 = T2;
    r1 = find(I > T1);
    r2 = find(I <= T1);
    T2 = (mean(I(r1)) + mean(I(r2))) / 2;
end
 
J = im2bw(I, T2);
subplot(121),imshow(I);
subplot(122),imshow(J);

2.3 区域分割法
将相邻的具有同种性质的像素或其他区域归并刀目前的区域中从而逐步增长区域
相似性度量 : 平均灰度值, 纹理, 颜色
缺点 : 往往造成过度分割
取决分割好坏的三个因素 : 种子点的选取 生长规则 终止条件

2.3.1 分水岭分割

clear,clc;
I = imread('Gray.jpg');
J = watershed(I, 4); % 4个连通区域,默认为8
subplot(121),imshow(I);
subplot(122),imshow(J);

在这里插入图片描述
2.3.2 区域生长分割
根据统一物体区域的像素相似性来聚集像素点达到区域生长的方法。其中由一组表示不同区域的种子像素开始,逐步合并种子周围相似的像素从而扩大区域。直到无法合并像素点或小领域为止。其中区域内的相似性的度量可用平均灰度值、纹理、颜色等等信息。关键在于选择初始种子像素及生长准则。最早的区域生长图像分割方法是由Levine等人提出。

2.3.3 区域分离聚合分割
区域分裂合并法(Gonzalez,2002),确定分裂合并的准则,然后将图像任意分成若干互不相交的区域,按准则对这些区域进行分裂合并。它可用于灰度图像分割及纹理图像分割。

3 基于能量泛函的分割方法
该类方法主要指的是活动轮廓模型(active contour model)以及在其基础上发展出来的算法,其基本思想是使用连续曲线来表达目标边缘,并定义一个能量泛函使得其自变量包括边缘曲线,因此分割过程就转变为求解能量泛函的最小值的过程,一般可通过求解函数对应的欧拉(Euler.Lagrange)方程来实现,能量达到最小时的曲线位置就是目标的轮廓所在。

活动轮廓模型逐渐形成了不同的分类方式,较常见的是根据曲线演化方式的不同,将活动轮廓模型分为基于边界、基于区域和混合型活动轮廓模型。按照模型中曲线表达形式的不同,活动轮廓模型可以分为两大类:参数活动轮廓模型(parametric active contour model)和几何活动轮廓模型(geometric active contour model)。

3.1 参数活动轮廓模型(parametric active contour model)
Snake模型:
ASM(Active Shape Model)
AAM(Active Appearance Models)
CLM(Constrained local model)有约束的局部模型

3.2 几何活动轮廓模型
几何活动轮廓模型的曲线运动过程是基于曲线的几何度量参数而非曲线的表达参数,因此可以较好地处理拓扑结构的变化,并可以解决参数活动轮廓模型难以解决的问题。而水平集(Level Set)方法(Osher,1988)的引入,则极大地推动了几何活动轮廓模型的发展,因此几何活动轮廓模型一般也可被称为水平集方法。

3 备注

版本:2014a添加链接描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值