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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
" N# E/ x' u* x1 f' P2 z/ D; i! @
一、简介
9 f; X( l; Q( e# A" T; e' ~8 s1.使用距离变换的分水岭分割
/ J  L. f! g& @6 {5 z; i) D9 d6 A- }' j( n
(1)距离变换
2 f+ j0 Z* j; Y4 }6 `; b' C- x! v
( H/ K1 Q% f: A& D9 n1 i0 M/ CD = bwdist(BW);
1 k) `$ A1 c6 }6 l
4 j7 l. H+ v- g% O9 n8 g2 ?  d二值图像的距离变换是指从每个像素到最接近零值的像素的距离。# F3 ?: O! V& ]% U+ E* l

: H' I* o4 n+ O6 s) E(2)测地距离变换
9 g" i+ ?- T- N2 U7 R5 n4 z
: h6 C6 p5 X6 i7 I4 {/ G' TD = bwdistgeodesic(BW,mask);
" Y4 C$ l. }! G/ B3 H0 r( V
8 o3 A- Q1 @& r% [3 x; T0 I/ S2.使用梯度的分水岭分割% R* J) L+ C$ t+ J  S8 s: X
# R; n! K5 m6 E7 R
获取梯度图像:
# U8 |3 N/ \1 _- p9 E, i3 k5 \3 f2 j+ O: G9 N
h = fspecial(‘sobel’);
9 ~$ F  U- a  |" q, k- ]; L0 j/ u. q3 v- R* \: k" u$ k
fd = tofloat(f);
: G0 I/ U8 J8 z1 m
" B7 ]  x# n/ H: Cg = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …
& a* X  x3 n' w% B" {% w5 h
+ B) s9 t' D7 Uimfilter(fd, h’, ‘replicate’) .^ 2);1 t1 W6 `- P. U! K) R
: `* x% c5 N$ ?1 ?  P5 F
在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。, h, D9 x+ X4 y% \4 ?
; R0 w$ D/ t8 ^) [! I
3.控制标记符的分水岭分割0 p) q4 s0 P' g' P

; @  v# ~6 f: M. Q  f4 U8 m(1)计算局部极小值区域& O8 `/ [/ D3 i: ?( a( v9 k

" x2 o0 B/ F6 F# B$ O2 ^rm = imregionalmin(f);
6 X7 n- Q( b' ?6 @! A  `- Y2 g' [7 @$ g4 ?6 K
其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。$ `9 w- y* O+ H; r

( a7 ^3 o- v: `& g3 K4 w(2)扩展极小值
' O2 R8 [. c; c' j. l, _* k4 D( i  n! s  O/ h% _/ h) d; i
im = imextendedmin(f,h);
  g2 x2 Z1 R; o0 [" p9 L+ \7 l' n4 N6 J4 e
其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
" J5 m! ]0 T4 @, d) m  R; L: D' S; `- M5 C7 ~* a8 E6 g
(3)强制最小
8 ~+ m! `; a1 t7 i5 R4 N6 l: O& R" k# g8 X. |' C3 d6 M
mp = imimposemin(f, mask);; X3 O* K# n2 I) A# c

2 D" ]* F' b& n1 r  L$ H4 I) a其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。
5 h7 T8 W# t" d3 r
. G! e$ W- z$ t' W$ K7 C3 B. h3 M
二、源代码
/ }6 L# u& A7 t2 B% @# J4 W7 h3 V& S: o( y/ B; Y
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');
    $ {4 b; J' P# Y: R

, `/ Y& R& [: X/ i5 d
' y) k0 ?& ]) H7 E$ c) `+ z' T, z" _
9 _1 X9 y7 B& w, j5 ~4 `三、运行结果
2 N! u$ J+ u; U1 ?' @
" q  y8 r/ A7 l # `7 S( _* ^3 y

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      4 H% X3 N$ I; y2 \
  • 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-11 10:39 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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