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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
* [6 E* g8 @$ Q
一、简介( s6 F" \" f& S% N" Y
1.使用距离变换的分水岭分割
/ \/ P# ~9 `/ [" @$ U* j" Q
: t5 @3 M! }# T7 W1 l7 x(1)距离变换
, ?; D/ E6 {, V$ |1 z7 H. ]5 Y1 L' {- T! r! P9 C
D = bwdist(BW);5 A/ k; z& b" |$ ~( l  Q

( |  e: c. ^9 C( f# y二值图像的距离变换是指从每个像素到最接近零值的像素的距离。
# V3 C$ }0 f& p' ~+ \4 l: g
1 d* [) v1 m& T" Q  j(2)测地距离变换
" c5 _( P& Y/ t7 ]* b& Q
+ {7 P( `1 \( m' d0 R- gD = bwdistgeodesic(BW,mask);+ V7 ]7 J. w) S" W1 G1 i& f- `/ A( ?

) k, {( t) k4 ^& r2.使用梯度的分水岭分割7 W) j6 X) u( B
6 X! v" w, M" K7 A" z7 S4 e7 D8 m
获取梯度图像:8 v$ }9 P/ N( x+ C6 J; h
/ S) V* P2 c7 R7 V. ~! P2 P
h = fspecial(‘sobel’);0 |4 ^$ n/ v# W$ G7 Z, Y1 a

4 s# ~4 m% ^+ E: k$ B3 ^fd = tofloat(f);  M  |8 O  F. O; R- D4 m9 y
2 S- A+ X! }6 L4 \8 k
g = sqrt(imfilter(fd, h, ‘replicate’) .^ 2 + …9 u5 k0 h% C! v4 ^! O* \+ }

( R' j; C5 x6 ]  R* X1 B, V3 simfilter(fd, h’, ‘replicate’) .^ 2);
# T. W' D, U5 p9 S5 F9 L7 O2 {3 {( k# E+ a- Q
在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。- \) t4 y' P* b9 ~( z4 a4 k( B

# [# t2 @' q* v0 B3.控制标记符的分水岭分割; F9 k7 ?1 q! `; w

+ J, |+ r) t6 n: ?& }+ g(1)计算局部极小值区域  z3 u8 V* M  J4 ~. {5 Q4 J

0 |; f4 t1 s: L7 urm = imregionalmin(f);9 X  F$ ^! h4 w# i- m) G0 m
' p+ B* {0 [; @2 i! ~
其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。
, c' v# s) |/ S5 q! k, f
1 {- |* q/ B) ~# W$ f) L(2)扩展极小值
" p1 x' m' h& k
% R% u0 c% X% |5 S& X+ [im = imextendedmin(f,h);
3 `0 {/ U" i, e- A. P8 ~
" n  R2 D) Z& p# d5 o其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。
' E" P, U" s' y: s
8 G. {. w7 c9 Z9 g; G(3)强制最小
1 U) L, w8 d1 z& r
3 E; p! \4 K9 a2 C5 {mp = imimposemin(f, mask);
" Y  M" p1 Q2 l0 a6 v
* x% A' e9 W9 o) e4 E" `& n其中,f 是灰度图像,mask 是二值图像,mask 的前景像素标记了输出图像 mp 中局部最小区域的期望位置。通过在内部和外部标记符的位置覆盖局部最小区域,可以改进梯度图像,用于控制过分割的一种方法是基于标记符的概念。标记符是属于一幅图像的连通分量。我们希望有一个内部标记符集合,它们处在每个感兴趣物体的内部,而外部标记符集合包含在背景中。标记符的选择范围可以从简单过程到更复杂的方法,涉及尺寸、形状、位置、相对距离、纹理内容等等。指针是携带对分割有影响的先验知识的标记符。人们常常使用先验知识在每天的视觉中帮助解决分割和高级任务。最为熟悉的便是使用文本。因此,分水岭分割提供可以有效利用这些类型的知识的框架这一事实,是这一方法的突出优点。. I5 l6 U% U3 L# R
8 y9 g+ o3 Q) x  [2 F, m5 b. q
2 P, e) Y+ O$ D% y9 W- l3 p5 k2 p4 M) q3 I
二、源代码
, h4 J# E7 j5 i( N: h$ Z' k  U( M5 b! [" j- z$ u8 c, p
  • %基于控制标记符的分水岭分割
  • [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('基于控制标记符的分水岭分割');2 x9 Z# b7 U$ `  y: D9 n2 W% ?: j
3 j% A0 b3 d/ y: M; a- N! C! d
% z6 `% _/ x' K/ c. h6 U
, w2 H% g& h( z- k) {1 g. z
三、运行结果
7 f% \7 x- ^% D4 f! J8 C! D6 q) {8 v) A2 i5 i  _% d! p' e6 J

# g' O8 O" r: A- w7 l- H9 j5 s

该用户从未签到

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

该用户从未签到

3#
发表于 2021-4-25 16:30 | 只看该作者
看一下      ' r" ^0 x; c& F
  • 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-10-31 04:20 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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