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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
: f; p3 d+ K& K& g% ^, w
一、简介) D2 z! Y# {4 Z* i8 Y/ w: _
1.使用距离变换的分水岭分割
; G) M5 u; l9 \  O/ l- e, c$ f. ]' u1 i  T1 o4 f
(1)距离变换. E1 d) |6 z* V8 z4 @9 ^* k  m
' A( C' p9 z* ]* A- h" x* c
D = bwdist(BW);0 k; a! M. ]: b6 O
* Z# y  h/ v& Y, K8 \' y
二值图像的距离变换是指从每个像素到最接近零值的像素的距离。
9 f4 M0 W. [3 ~$ p6 S; Z
. N0 i9 d( s. T, k2 M  z' L, E(2)测地距离变换) B! H2 f2 [9 z, t% ]

4 b- E" u8 E5 ?  @% {D = bwdistgeodesic(BW,mask);7 ?# \' g. k7 w  t0 Y* z, q

. O  N  W9 H* i2 S# A2.使用梯度的分水岭分割' Q! k; ^) s, s' B: k3 G' ~1 A; h5 e$ m

% J* K$ h7 u& Z; n获取梯度图像:
" W; P9 \$ N: B5 y1 a" y3 s/ i, e2 f7 b( z
h = fspecial(‘sobel’);" B4 b# b) C3 y! L' T
6 m( I$ g& p5 y/ T# g7 @
fd = tofloat(f);& G5 r9 @# L6 a, z* J# V
* ~# |+ x0 B. R/ J8 J" m: c0 z
g = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …
" T4 |) p! h5 X  K1 E) W6 |  L7 L9 u2 v/ |0 p
imfilter(fd, h’, ‘replicate’) .^ 2);
/ w( }- i6 w5 |7 F4 ]) X; q4 W- ^* C8 n# d2 v4 P+ e
在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。/ X  b5 `- z0 `2 |6 u
, v7 Q" ^- P) j1 e9 i
3.控制标记符的分水岭分割
" N1 g1 Q' w, C4 Z: W" I0 C
5 W/ A; n0 S! Q1 f(1)计算局部极小值区域/ h( d. c$ Y3 L% R

* V0 P/ p7 a5 {! c. A8 K5 nrm = imregionalmin(f);
1 M6 W* I2 M* }% o( d' [5 T6 H
6 V* V& I% C% M% n& P: n其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。: ^* B4 C- V, p9 _

2 J( K, d3 I$ A0 `: x" z+ W(2)扩展极小值1 k8 G" B) e$ o3 G0 v
  V% y! S: O+ F4 i
im = imextendedmin(f,h);
9 L' ?  U0 y6 j/ X, K2 v# S( i; B$ J- G9 }  X6 |
其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
8 h1 E9 Q' R/ ?7 U5 U0 g' `0 p: \" c7 d  Q- T( D
(3)强制最小0 Z! V% A$ L; a- `9 N0 I! A6 h' R* P8 r
0 f& u/ S& D! i3 {* y  i  S5 M
mp = imimposemin(f, mask);
3 a" H8 d3 y) o1 m' K- W7 V( E" ]1 {+ n% k
其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。+ D3 [% t+ {) W9 h
% d0 W  o' V. S! s
3 P0 r' b) B8 r4 f5 |- M7 e" s. T  H
二、源代码9 H7 ~  v, k) O" A# \
4 @( P) U9 Y8 M) d* E$ o5 [
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');- P5 k5 Q/ S  N, `7 p: V, {
: ~- R8 B! c1 a# o1 H
9 f6 M7 C8 W; w' ^% [
8 Y3 P, q" t% F6 Z9 ~
三、运行结果+ F8 M. ?) l4 m! @5 B

3 @6 q# J$ y) l% Q 7 r. @- L9 c0 e+ e

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      
' V- u* z  L+ {
  • 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-23 20:33 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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