找回密码
 注册
关于网站域名变更的通知
查看: 578|回复: 3
打印 上一主题 下一主题

基于matlab图像处理教程系列之图像分割(二)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-25 11:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
. ]/ `1 I% g! w. ^* c+ b
一、简介) a3 W4 Z& H5 d  _; ?. ~
1.使用距离变换的分水岭分割; _' S) R9 [2 X/ r! f: s& M
4 O1 ~1 q0 P; _
(1)距离变换* X0 t2 g% p: [% `9 x$ ]. Z

3 h8 c% F# B1 fD = bwdist(BW);* o; k' [7 b$ Z5 a

6 m! |# }; x5 }( l2 I  t1 g& q二值图像的距离变换是指从每个像素到最接近零值的像素的距离。: X* @' s  {( w; g% L. n

' J9 j0 p' r' b5 @" r0 N2 I) |(2)测地距离变换
* O; s+ w7 E: {0 f5 C% O/ m6 F) k- `6 L: Z% [" H
D = bwdistgeodesic(BW,mask);8 m  Y" E8 ?7 i' f6 o8 x
9 r) u% p( {* Y
2.使用梯度的分水岭分割
/ a! f# i% Y+ k; L" y
' N( f. G7 C( \' y4 j/ i9 W9 w获取梯度图像:3 n) I9 @1 ~! {6 |4 ^

' [/ k6 A: _, }/ t3 Qh = fspecial(‘sobel’);
6 S% V( E6 e" U( g# h9 X# }; e8 x
fd = tofloat(f);0 G2 z' e" M4 E4 H& p4 @

6 ?, |2 v4 B% t2 wg = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …; ^! T! F; K. P7 O2 c; T4 E) `

1 L! V. s0 P5 `imfilter(fd, h’, ‘replicate’) .^ 2);. H* j; B; g, z: a% }' V5 Y
; X4 a) Q1 ]/ x
在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。$ _+ H3 _8 h7 H; m
9 q5 z3 ~* Y; r5 n
3.控制标记符的分水岭分割
/ R4 z6 |# z6 N
8 D: {) d1 V, v6 |  l7 T( @! V( g5 Z8 ^(1)计算局部极小值区域
- o' V: R1 _& h3 Y' p- l8 _$ e0 y* J0 q& @) h/ l
rm = imregionalmin(f);
9 i* k3 ?8 f4 J5 T/ f& H/ j- O9 w  s1 Z/ e2 w3 H* Q3 e5 @: p
其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。( }1 R2 L6 u3 p# L: t# j2 [
9 i7 L( V1 F$ x; B$ T5 I. @: c
(2)扩展极小值
% {6 }! L( R# r  @- f% i6 n, n5 N; y" _% u6 W8 F! q1 D: n0 r) I
im = imextendedmin(f,h);8 j' ?" C0 s( b$ T* G
" C" z) |5 c: g: T' H, k+ Q# g  ?8 [
其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
' }  s6 j! w5 C$ d( T6 l7 e- s+ j+ \. z: [' n
(3)强制最小* T$ C1 H% L, ~' h* a& `: x

1 O; `4 N  k7 g1 k6 cmp = imimposemin(f, mask);: L" I; N: y3 N
2 y' U& R& [3 Q; {  w- ^
其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。
# d+ L, d- ~1 R8 D5 f: f' P% s
4 \- _: U, X! g' _
& T4 T3 W& _! Z9 S' L3 U0 V4 B二、源代码
1 V+ H" d5 n  A$ }+ a5 o- u. x6 \$ N6 C. _
  • %基于控制标记符的分水岭分割
  • [file,filepath]=uigetfile('*');
  • file=fullfile(filepath,file);
  • img=imread(file);%读图
  • imgsize=size(img);
  • if(numel(imgsize)>2)
  • i=rgb2gray(img);
  • else
  • i=img;
  • end;
  • imshow(i);title('灰度图');
  • pause;
  • %取阈值
  • [T,SM]=graythresh(i);
  • bw=im2bw(i,T);
  • imshow(bw);title('二值');
  • pause;
  • % % %%%%%%%%%%%%%%%%%%%%%%%%%%基于距离变换的分水岭分割%%%%%%%%%%%%%%%%%%%%%%
  • gc = ~bw;
  • % imshow(gc);
  • % pause;
  • D = bwdist(gc);
  • % figure,contour(-D,40);
  • imshow(-D,[]);title('距离变换图');
  • pause;
  • rm = imregionalmin(-D);%查看局部极小值区域
  • imshow(rm);title('查看局部极小值区域');
  • pause;
  • im = imextendedmin(-D,2);%扩展最小值
  • % figure,contour(im,40);
  • fim=i;
  • fim(im) = -255;
  • imshow(fim);title('合并后的局部极小值');%查看合并后的局部极小值
  • pause;
  • Lim = watershed(bwdist(im));
  • imshow(Lim,[]);title('基于距离变换的流域分割');
  • pause;
  • em = Lim == 0;
  • res=em|im;
  • imshow(res);%查看掩膜图像
  • title('掩膜图像');
  • pause;
  • g2 = imimposemin(i, im | em);
  • imshow(g2);
  • title('强制最小');
  • pause;
  • L2 = watershed(g2);
  • f2 = img;
  • f2(L2 == 0) = 255;
  • imshow(f2);
  • title('基于控制标记符的分水岭分割');# E2 ]8 x0 ~  l6 J2 J5 y

9 }3 h' @3 s' d' ?; H2 j0 Z2 Y- H0 e8 E
1 Y: |3 C- ?/ O* h
三、运行结果9 E7 Q% `- _! \4 M+ ~( |4 b* j
& N& X; ~: e9 u, b5 @/ ^! v: G

+ z0 k0 j3 g1 s" \" E9 g

该用户从未签到

2#
发表于 2021-4-25 13:23 | 只看该作者
基于matlab图像处理教程系列之图像分割(二)

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      : d$ ]8 D* A5 o6 ]& m/ ?. B
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

    4#
    发表于 2021-4-26 08:50 | 只看该作者
    今天晴天,很棒棒哦,加油哦
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-19 17:54 , Processed in 0.109375 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表