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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
+ a6 j3 S! C% O# P" R
一、简介# v& V- o" c( b5 i% @" |
1.使用距离变换的分水岭分割: f6 i7 J' n2 c1 E0 x

8 ^/ e2 k1 d! b% i(1)距离变换
* ?1 N9 _0 c; F3 |% H: [+ h! p
. m& S$ C) v2 w/ V, E. lD = bwdist(BW);) H% Y& M0 z' N  ~( u7 P5 s7 r
; h7 y  ^  y8 t1 V: J! j' h( c/ e
二值图像的距离变换是指从每个像素到最接近零值的像素的距离。
% H4 }1 o# \1 ~& y9 B5 \5 x  F
. \' D; y$ N- |3 u! K5 s* l(2)测地距离变换+ Q# |- [' ^% t1 q: C
+ o" |7 d  l; n7 J2 _" H
D = bwdistgeodesic(BW,mask);
0 E) P/ A% P7 M) d! O' x
4 X0 v0 D% a6 g3 j' Q7 b5 u2.使用梯度的分水岭分割1 K* o) e# A: P4 Y! Y5 S

4 L; o, N* p& E5 K. b  O# ~: g获取梯度图像:- F6 A+ P, Z; o- K: C- @

) I6 f  t8 J) W3 ch = fspecial(‘sobel’);
$ z$ Z8 T" d  B0 }2 n* z$ ^
9 L0 J* T$ v9 h) d9 A5 L% L/ I( zfd = tofloat(f);3 f) _7 z/ B- Y3 ]

& h: }4 F$ `( K# q; p& h0 @9 q3 Kg = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …
+ ~. @6 K9 |& @3 q+ ]9 e$ N4 Q1 N1 n
3 J& ]+ K5 k$ R8 ~* i  himfilter(fd, h’, ‘replicate’) .^ 2);
0 x0 {4 s0 ?& U8 ~
7 _6 e" G. `$ B2 k7 Q( w/ W在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。" V* X1 y& I! Z6 Z# ]# h
" W3 R6 |& k( w# [
3.控制标记符的分水岭分割' g# i2 X: t! Y
+ R: H% i# i% i. Q, M5 m: c& L' i
(1)计算局部极小值区域
$ s) Q4 ~$ \7 e& X: d! I& o! W
" S) S6 s/ l5 ?8 z: H) prm = imregionalmin(f);' O. M, j3 R! Y$ `

# ^5 i( Y( k8 G0 f6 J其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。* y+ E9 a( O+ W* |) U

$ ~0 J" F  L7 N1 c(2)扩展极小值
1 H) W8 m% j/ M/ h9 X9 k" z9 ~: Y! Y2 I: ?) Z* P, D! o; U
im = imextendedmin(f,h);
2 n5 ?6 W3 i4 b4 V" {: X9 H; C
# W) P7 T4 l* I, j+ e' L% l/ @其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。% U8 z& o0 f! f- A! `. M
6 q5 x$ [* ^/ K( {' N3 [: h9 n: e
(3)强制最小7 e0 T9 f3 }, Q" Q/ i  _) ~4 x
, R" w0 a" t7 m, Z) n, B4 q
mp = imimposemin(f, mask);/ Y" C  \$ _; A; P* f  h1 A
6 i% d: I) w: P
其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。- [' ^3 v5 N- X

6 ~$ u3 Y+ D2 {! J( ^  @. l2 c' S& b' v
二、源代码
3 M% z4 R5 R- _% @/ }4 b$ r/ B7 x7 Q' j
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');$ q/ R$ W0 ^& K" y) R! q  ^
/ R! q4 }0 M& J+ R
8 I5 e3 }: j. `1 _# ?9 y

+ h; f% r$ {* s* ]三、运行结果. J6 ~. R% d: J8 s+ w; s. |
- F, n! h: W# E4 S& F

; y# w4 C6 p0 q8 M3 d# [

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      & D" w9 Y' h5 E0 m" \' B% R, A
  • 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-13 15:47 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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