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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
6 h5 Q& f' p3 h% N% V
一、简介
% `7 L  [! X9 k: Z$ p" v+ ~1.使用距离变换的分水岭分割
8 q1 @; t2 E4 u, E7 H; ~( v) ?9 h* e2 P
(1)距离变换
  B* u* O# f0 a' O1 q, H
' H( P' }; k* u5 E" _6 q. TD = bwdist(BW);
0 \$ A" e7 Q  D( Z7 T$ o* g/ Q; t6 ?; ]; s; ]& x
二值图像的距离变换是指从每个像素到最接近零值的像素的距离。$ Q0 r' [+ U$ f) Z0 N1 T

$ C. G" T) O  t, j/ z+ N+ J(2)测地距离变换
# R1 Y% S) C: F5 g5 S2 v/ T
% j! T( |! F( b( s- D& ?+ o  z- `D = bwdistgeodesic(BW,mask);
8 o  T4 I+ K1 ]9 ]6 W, }( E
7 D5 y: c0 {& b. H+ Q8 K2.使用梯度的分水岭分割
1 {3 e7 r% g6 d8 Z' u1 r  @  d" E9 }. n% R
获取梯度图像:- U* |* N* J! j/ J, X" b

( z5 v, n# g$ Fh = fspecial(‘sobel’);7 K' X/ Q0 z6 J* |! W
6 \' R4 A2 k: V9 o+ P1 K3 X
fd = tofloat(f);
' c1 o% m9 {9 ?/ C( ^2 i* q- Z' J& E
g = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …0 n, V: a& t* E
' B% u  r4 p" x$ L; ^
imfilter(fd, h’, ‘replicate’) .^ 2);
; M+ `8 f+ L, W; N/ h; O/ n# q; u# m! d- g( M7 E
在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。
! f- [. C+ w# r
1 g" ~) \; F% x; d3.控制标记符的分水岭分割; ?! F$ B! p, u3 |* o
1 N) ^  ?5 O. c( ?
(1)计算局部极小值区域
$ D7 q8 L4 {0 p  t  L1 C. ?) ~- K
rm = imregionalmin(f);
* ~( ~- Y& A; R3 s! r6 O
- z2 x4 u, D: |8 H其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。
8 C. V* j4 ~( g) J: I9 U  o! j  j" W& C, v% f7 }# u  F0 r" \$ y  ~
(2)扩展极小值
+ X9 F( y+ Z2 `1 d( n! A6 D
- Y9 v0 G# V& v- Dim = imextendedmin(f,h);
5 s8 v* `9 [* E; Z' h& m6 S% M6 e0 Y; L% l
其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
* P3 ]% a& p$ a3 m' i9 M8 [$ {- z7 ^' W, l
(3)强制最小! l1 f6 P7 }. d

, G1 q% v* J+ Y. L8 F! K* @; dmp = imimposemin(f, mask);8 p* L1 W$ y" r: `$ z; _
! l- G* s! r) \. I: M  f9 \" n
其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。+ S/ m; [7 J2 p

9 F! |" d: ]8 {, H- Q$ p" _
1 [. x) W1 n* u" @8 d% f" G/ o二、源代码
" f: H5 k& D% R1 F" C- {$ V
2 l0 R8 i- _0 W/ R* G9 b/ w3 I
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');
    : S' @. K% Q  T. n( y$ e
' {9 B" o6 q) }9 |
% x; E! y3 K8 t/ `: I
/ U, v) j5 t; T/ S
三、运行结果6 P0 V- w% k5 m( X3 W
$ m% P& N# E2 m4 m
5 t9 N: h+ V8 \9 O  v7 t

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      
' n$ i- {7 i; z+ 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-6-14 04:54 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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