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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

* R- k1 o" @! f$ I一、简介
2 R* X( c5 j, T# Y: d- X1.使用距离变换的分水岭分割4 }9 k& k4 v# @

# e7 M8 D. M7 u: R" W9 s# |5 s7 d(1)距离变换4 `9 B* ?0 w  U% d5 E. m
& b3 ]6 F, Z% |8 E
D = bwdist(BW);
; M/ y8 {" C% b2 L( N5 V& C6 V$ G/ K0 q. u: {* @- P- z, @
二值图像的距离变换是指从每个像素到最接近零值的像素的距离。
1 \$ }4 D3 Q  Q! h2 O7 X. u. d" H% K/ ^
(2)测地距离变换
# R1 E! d5 o% ?+ U' Q8 w; w
' ?9 B4 G$ I/ X" gD = bwdistgeodesic(BW,mask);  k, V9 g" T' x* x+ I

+ ~& s& [) ]0 m2.使用梯度的分水岭分割# O  R9 f5 q# r/ p: b# [5 a" v

2 l% h6 l0 ]/ l; x6 c+ @获取梯度图像:
- Y8 U; N, \; L
3 S' f0 `; ]) Mh = fspecial(‘sobel’);
* ~  C- H9 [) l- u! j1 [; G% T" L* A
9 c+ X* j, U, Q4 z% qfd = tofloat(f);( q0 ?$ A9 Q  R" ?9 g, D
# k. _0 `* |$ m/ x% l0 g
g = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …
4 Q2 E1 }8 T$ v: X+ w2 h' h+ ~0 Q0 z7 L0 r- ~
% e5 T; q8 U, `, c- e' F- D' y, _imfilter(fd, h’, ‘replicate’) .^ 2);- T& T' U( e9 \. _/ E
# ~7 y7 T. s6 Q  r
在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。
" U1 E6 o; T8 `' c+ B! {5 O4 \2 o) C9 [0 B  x6 g4 s9 m
3.控制标记符的分水岭分割
2 [/ e3 {' S( l! e( C3 d. H
0 P9 P3 V# F6 ?* h5 f(1)计算局部极小值区域* Q- U7 w9 Q, a+ g0 l
8 M5 L, b* }7 T% j9 C/ b0 w7 n7 [* q
rm = imregionalmin(f);
) _7 a( e& \+ [; \$ T+ k6 b7 }- T7 W. ]% E3 n
其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。
) y, _5 u: h9 N9 \! ^1 l, Y5 F/ r4 `0 ^# N: f
(2)扩展极小值4 ~& [2 u  S6 h; i) N9 c& P, u
0 I2 \9 g% `6 R6 r9 ?
im = imextendedmin(f,h);5 P* z- U( g5 a- t& M8 N' n

/ O; j- o5 T( ^- N; d9 K4 M% \其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
- \- h5 F# R& k% \& X6 M8 r; h4 |. T! L  W4 Q6 n
(3)强制最小* N. ?0 {3 ~; V
0 P- {5 [- ?# e* d6 {" J1 ]
mp = imimposemin(f, mask);
$ o9 U, l$ t2 a7 `1 b7 u( G1 ~5 a- g
其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。
) L8 ~: \1 w( a; K  @7 \/ {* ^2 u7 Z, n3 H2 ^

7 K1 v4 @3 g1 _8 u1 g2 v& ]( W二、源代码
) t. C7 X& d6 a* r' Z  }" i2 n# V! C$ S" _$ Q/ k
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');
    1 _: R" r# ]" n6 [/ U# g& ]3 N" T% s

) z: n, z4 K0 a0 p
& k7 v+ ]2 f8 M0 ~0 s) Z' f
' d' |1 o5 U' t9 r/ C5 s, l' l2 B, z/ U# n三、运行结果9 e2 ]2 i$ }: u5 L( O
4 J8 y; O9 Z+ b$ @$ m- N
' E* Z+ D1 Z6 x, e' X% l+ h, z/ x; [

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      
9 f  R! G# R! u) {8 p- _
  • 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-8-12 03:34 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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