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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
8 w: Q+ M1 f1 K4 k! O) i" O: V. Q
一、简介
- w: C2 _; |+ X1 J3 \1.使用距离变换的分水岭分割
# ?5 w4 j1 o. ]& c% p  {6 w& m( r, o- ]- U+ a" a! W
(1)距离变换
% u/ d! N4 S1 w; [( ^) }5 w( l: l0 ]/ J. t9 I# I; L9 F
D = bwdist(BW);
# u1 M9 e9 X7 L" W* z7 f) K0 s- Z; C8 J* v( g' f. b' U
二值图像的距离变换是指从每个像素到最接近零值的像素的距离。
" A5 m. c( X- b9 F  e! O* r  V3 [0 R4 U& c7 w. s, L
(2)测地距离变换
( Q6 ^. X6 m( Z; ^& L4 v, o1 P8 T% \
( ^) E/ V, [3 X) A+ Y6 z( m" RD = bwdistgeodesic(BW,mask);
6 B4 n0 p# l' C6 _2 N; k$ |1 J8 v$ z# f$ D# G
2.使用梯度的分水岭分割# Y& u% ~  A5 P% }% E
- f% D' u* \; d3 T% z% M- P, C  E" R$ M
获取梯度图像:; S* t' K; v3 s! I0 @( [8 z

6 j$ j$ r: d% T7 z# wh = fspecial(‘sobel’);
4 Q2 D) Q$ B$ l" [
% ?; w# u5 S+ xfd = tofloat(f);1 w$ x; Q' y7 z( d" K+ |9 f
' z1 t+ n/ j  Q! H3 v
g = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …
* l" l1 n5 b; K% |  b0 p6 R: Y5 A$ E* M
imfilter(fd, h’, ‘replicate’) .^ 2);
1 u$ s: n+ `+ D! i
/ p+ ^' U& u; v; T& W: h2 `在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。5 W$ N% d% w2 ^6 O! i- t
" R; ?* g. T) f
3.控制标记符的分水岭分割3 g2 f# A4 K( g" _/ t( Z

0 V2 e) H  _8 _" M- h4 z(1)计算局部极小值区域5 U5 t- ]: Z, k9 V7 a' ]. E
3 h9 H) r2 Y% Z2 B7 D* K( s
rm = imregionalmin(f);
$ r; Z& ~$ B  u5 x$ d. h
% s* r* W3 E1 ?5 l  G其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。6 N$ t$ F: h5 {

, r: y5 _2 H( {1 u, i(2)扩展极小值
6 r( R" B+ f2 j
* q! h. V, ^# U  k+ Him = imextendedmin(f,h);4 r( k# n2 T3 y  X8 Y2 v. }
) U, a3 [5 |+ L2 i. y7 x, ^
其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
9 M' f/ S0 q0 Y) a# N- E% o1 }* M& h% @# D4 a- y2 [( K# C4 ~( I
(3)强制最小
) M$ A. _. s& X: V9 E: v4 W; {  B8 u) [- z* Q
mp = imimposemin(f, mask);: ~% e" \* Z% k
* s) K$ p  y  n6 U1 J
其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。+ Z; J5 o. o4 J, ~5 j

7 _7 T1 J- E2 B1 e" O5 L' r
4 c. u7 y( |: T6 r' z0 y二、源代码+ p3 B& ~2 Z( v% ~/ n! N. n
7 C4 |9 N: I; e) 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('基于控制标记符的分水岭分割');
    + w  C, y$ Q( }. s' F

% p% k5 l) a9 `4 z- L$ k: {- `  U$ Z$ Z+ {) Y- w+ ^, W
9 ^( m4 r6 f, T# d9 c9 `. b
三、运行结果
4 |) K' p4 o6 A. I- i% O! a- s* {( X, p4 {6 C
1 y) t+ t# i1 A) i6 F3 X
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

    4#
    发表于 2021-4-26 08:50 | 只看该作者
    今天晴天,很棒棒哦,加油哦

    该用户从未签到

    3#
    发表于 2021-4-25 16:30 | 只看该作者
    看一下      
    ( t' X0 u- g& @9 L

    该用户从未签到

    2#
    发表于 2021-4-25 13:23 | 只看该作者
    基于matlab图像处理教程系列之图像分割(二)
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 22:44 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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