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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
- p1 ^# f' G' j6 D: ]& R
一、简介( r; f+ C* w! Z! _; T- m( \8 N6 I
1.使用距离变换的分水岭分割
; e9 w0 J) P1 c: F
; f2 C! Q8 w" R# f  x4 F* {(1)距离变换4 t- r( z7 N3 R) {2 q5 @

% a+ J! Q9 Q8 `6 y3 ?. dD = bwdist(BW);
3 S8 d2 p. ~) g" m) N7 S/ r  ~
! \1 b4 {8 H) {) ?& w二值图像的距离变换是指从每个像素到最接近零值的像素的距离。7 o+ W+ M( g, h2 Y6 ?$ O6 [: b
1 M7 I5 i, o) L  x# U8 l
(2)测地距离变换
% d& C0 S9 f' i4 E& D3 ~# y. i) t) f# P
D = bwdistgeodesic(BW,mask);5 y: x1 a0 n7 M- E' c. }

6 z9 t% N! T- u! X- c# X( q+ F2.使用梯度的分水岭分割
& ^) i7 W" D+ Z# q* c& \: b  P# R8 W3 F% ^3 |- P) ^( P
获取梯度图像:7 ?' l  D, I* ?3 {, X, A
% {6 d+ I4 A$ }% q$ x( e
h = fspecial(‘sobel’);
0 q6 g5 H3 {* y) ~& b# ^9 ~. K7 _3 }- [7 @2 X, O+ O! ~9 U/ J
fd = tofloat(f);
4 m( a: b6 ?6 T. g* l( H& G
* f7 s" ?9 F4 _! a! Sg = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …4 _0 W, H0 G( q5 U: G  E: t4 `/ U

! X# {2 f/ E7 jimfilter(fd, h’, ‘replicate’) .^ 2);
2 M: M) l* ?: E0 t6 M7 w  N
/ E7 h* U) N% k. |3 H在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。1 \: b( b; ]9 u+ j3 N

3 |1 x3 j+ \; f3 c. Q* x3.控制标记符的分水岭分割" _4 W8 u, V7 t; J

4 D8 C/ `/ \6 _' k1 H4 s: n7 D( ^(1)计算局部极小值区域
2 A  N. r; N5 B7 ~! H- g' a$ X6 |# \2 c& v; x# C* a7 \
rm = imregionalmin(f);
; q1 _' F& r9 P" a# H5 r9 l7 M# [  W0 ~' d  ?
其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。( i/ j! X! E8 ]- r

1 Y0 @' p4 L! D2 K$ c(2)扩展极小值
, ^- C2 l0 F. V5 U. [. w# e, G) N! {  h" _
im = imextendedmin(f,h);5 @8 d% h) J% `! u- p
' j+ Z4 V& m1 Y4 C1 c! u7 e  c
其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。3 k* r- ~' Y0 h/ Y
7 F5 r. a- x  p% Y
(3)强制最小
4 V6 q# V, L$ q4 R0 M6 I* T+ R; ^" ]& Q% v. F% Z: I8 T' H
mp = imimposemin(f, mask);
8 f1 F/ J% F' ]  R1 `% V
# J2 Z1 C( ]8 `( F5 ?3 t* t其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。4 G' I* Q" w; l+ Y. a
, N# O4 q/ v, }; R8 c/ H

  B+ ]0 T- [; N, R% @4 ?1 ~二、源代码7 g" n) k8 d/ C5 O! E& H5 K. `4 z

' Q. R' G2 U. v3 K# H$ n; M
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');9 y. g) ~$ k8 a  Z0 U% S5 g3 V5 l

& l' o& j: Z) i2 ~0 g( W
- W: v, t* K3 r/ J  j) z
% a* v/ F5 I" r$ E' c+ J1 p3 U- H三、运行结果
, Q% }' U4 l9 x. u% w0 z
% n8 J- U: h" w4 v: v
- a; G2 `$ b3 E: }

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      
2 l' k6 ?9 h1 d/ l0 q; z0 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-11-24 00:45 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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