简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]

简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]简介​ LiveWire是一种图像分割技术,允许用户使用相对少的鼠标点击次数快速准确地选择感兴趣区域,其实现过程可分为以下两个部分:使用滤波算法过滤并转换成灰度使用Dijkstra算法应用到修改

简介

​ LiveWire是一种图像分割技术,允许用户使用相对少的鼠标点击次数快速准确地选择感兴趣区域,其实现过程可分为以下两个部分:

  1. 使用滤波算法过滤并转换成灰度
  2. 使用Dijkstra算法应用到修改后的图像,从用户分别点击的两个点中找寻出最佳路径

​ 在 LiveWire 算法中, 待分割二维图像被视作有向加权图 G, 像素被视为 G 中的节 点, 连接相邻节点的视为边。由此可以定义代价函数作为边的权值, 即:

C o s t ( p , q ) = ω C f c ( p ) + ω LoG  f LoG  ( p ) + ω G f G ( p ) + ω G D f G D ( p , q ) Cost(p, q)=\omega_{C} f_{c}(p)+\omega_{\text {LoG }} f_{\text {LoG }}(p)+\omega_{G} f_{G}(p)+\omega_{G D} f_{G D}(p, q) Cost(p,q)=ωCfc(p)+ωLoG fLoG (p)+ωGfG(p)+ωGDfGD(p,q)

​ 其中 q \mathrm{q} q 为像素 p \mathrm{p} p 的邻域像素; f c f_{c} fc 为基于 Canny 算子的函数, f LoG  f_{\text {LoG }} fLoG  为基于 L o G L o G LoG 算子的 函数; f G f_{G} fG f G D f_{G D} fGD 分别为梯度算子的强度和方向函数; ω C 、 ω L o G 、 ω G \omega_{C} 、 \omega_{L o G} 、 \omega_{G} ωCωLoGωG ω G D \omega_{G D} ωGD 为上述算子的 对应权值。

Dijkstra算法

​ Dijkstra算法是从一个顶点到其余各顶点的最短路径算法,可以解决有向图中的最短路径问题,从起始点开始,采用贪心算法的策略,每次遍历到起始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。

简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]

算法原理

  1. 首先, 引入一个辅助数组 D D D, 它的每个元素 D [ i ] D[i] D[i] 表示当前所找到的从起始点 v v v (即源 点 v v v ) 到其他每个顶点 v i v_{i} vi 的长度。
  2. 设置 D D D 的初始状态

若从 v v v v i v_{i} vi 存在连接边, 则 D [ i ] D[i] D[i] 为弧上的权值, 否则置 D [ i ] D[i] D[i] ∞ \infty

  1. 找到从源点 v v v 到下一个顶点的最短路径长度所对应的顶点, 且这条最短路径长度仅 次于从源点 v v v 到顶点 v j v_{j} vj 的最短路径长度
  2. 假设 S \mathrm{S} S 为已求得的从源点 v v v 出发的最短路径长度的顶点的集合, 则可证明: 下一条 次最短路径 (设其终点为 x x x ), 要么是弧 ( v , x ) (v, x) (v,x), 或者是从源点 v v v 出发的中间只经过 S \mathrm{S} S 中的 顶点而最后到达顶点 x x x​ 的路径。

实现步骤

  1. 初始时令 S = V 0 , T = V − S = { S=V 0, T=V-S=\{ S=V0,T=VS={
    其余顶点 } , T \}, T },T 中顶点对应的距离值, 若存在, d ( V 0 , V i ) d(V 0, V i) d(V0,Vi) 为弧上的权值, 若不存在, d (   V 0 , V i ) d(\mathrm{~V} 0, \mathrm{Vi}) d( V0,Vi) ∞ \infty
  2. T \mathrm{T} T 中选取一个与 S \mathrm{S} S 中顶点有关联边且权值最小的顶点 W \mathrm{W} W, 加入到 S \mathrm{S} S
  3. 对其余 T T T 中顶点的距离值进行修改: 若加进 W W W 作中间顶点, 从 V 0 V 0 V0 V i V i Vi 的距离值缩短, 则修改此距离, 重复上述步骤 2 、 3 2 、 3 23, 直到 S S S 中包含所有顶点, 即 W = V i W=V i W=Vi​ 为止。

效果

​ 点击鼠标左键可以人工确定轮廓点,LiveWire算法会在用户定义的点与当前鼠标所在像素点进行路径生成。其中,蓝色路径表示已经生成的轮廓,绿色路径表示待确定的轮廓。

简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]

​ 用户完成轮廓选定。

简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]

​ 最终抠图效果:

简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]

源码下载

基于opencv和qt的多功能抠图应用

参考

Live-wire revisited

今天的文章简述使用磁性套索工具抠图和调整边缘的步骤_套索工具怎么精确抠图[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89652.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注