Photoshop 的磁性套索是如何工作的?
Posted
技术标签:
【中文标题】Photoshop 的磁性套索是如何工作的?【英文标题】:How does Photoshop's magnetic lasso work? 【发布时间】:2011-05-18 09:46:59 【问题描述】:GIMP 的 intelligent scissor 似乎基于"Intelligent Scissors for Image Composition" 上来自 SIGGRAPH '95 的一篇论文,如源代码中的一个 cmets 所示。
然而 Photoshop 中的Magnetic Lasso 有很大不同,而 GIMP 的工具让用户可以选择单击所需图形的顶点并沿着图像中找到的边缘进行近似,而另一方面,Photoshop 的磁性套索为用户提供了一种徒手运行的方式并在计算机化的近似值和用户想要绘制的内容之间给出一些东西。
从这种行为来看,很明显,磁性套索样式选择对于在基于触摸的界面中进行选择非常酷。关于磁性套索与 GIMP 工具有何不同的任何指示?有什么具体的论文/算法要研究吗?
【问题讨论】:
~ 你能说出你要为什么语言或平台写这篇文章吗?这是适用于 iPhone 还是 android 还是...根据可用的语言和 API,这可能更容易或更难 我的目标是 iPad,我的想法是尝试使用 canvas/svg+javascript 创建它,如果这在计算上变得不可行或难以使用它们,那么可能使用 DrawKit 作为本机应用程序的矢量支持. 【参考方案1】:您可以研究的一种算法是Marching Squares。
【讨论】:
【参考方案2】:磁性套索工具特别适用于快速选择具有复杂边缘设置在高对比度背景下的对象。
-
使用边缘检测算法检测图片中的边缘。
等待鼠标左键点击事件。
捕捉到最近检测到的边缘并开始一条线段。
3A。跟踪鼠标移动,捕捉到检测到的边缘。
3B。如果单击鼠标左键,则从前一条线的末尾开始一条线段或结束当前一条线。
3C。如果创建了线段,则将线与区域中检测到的边缘保持一致。
3D。如果单击 ESC 键或鼠标右键,则通过创建从第一个点到最后一个点的线段来包围检测到的区域。
瞧,你有一个“磁性套索”。
【讨论】:
他的目标是 iPad... 没有太多需要鼠标左键等操作。您如何确定在狭窄项目上突出显示哪个边缘?但这个想法是合理的。 听起来不错,但是如果你有一个距离指针 10 像素的软轮廓和距离指针 20 像素的强轮廓怎么办?你应该捕捉到哪个轮廓?这种方法还有许多其他未解决的问题......【参考方案3】:似乎 GIMP 的智能剪刀是基于 SIGGRAPH '95 的一篇论文“用于图像合成的智能剪刀”,如源代码中的一个 cmets 所示。
但是 Photoshop 中的磁性套索有很大不同,
智能剪刀算法的文档是here
关于算法之间的关系,this文章说
与 BYU 的计算机科学家有着长期合作关系的软件公司 Adobe 帮助资助了 Live Surface 开发的研究。由 Barrett 和他的学生开发的名为 Intelligent Scissors 的早期软件已重命名为 Magnetic Lasso,现在已集成到 5.0 Adobe PhotoShop 中,它可以快速从图像中提取二维对象。
【讨论】:
【参考方案4】:我已经使用您提到的文章 - 用于图像合成的智能剪刀成功地实现了磁性套索。我还实现了搜索区域的迭代扩展和“路径冷却”。
你可以在www.Photopea.com 看到我的实现(拖放你自己的图像,翻转套索,选择磁性套索)。所以这是可能的,而且实施起来并不难:)
【讨论】:
你真的用过原纸吗?如果是这样,您是如何处理大图像的图形搜索的?当图像的大小变大时,图会急剧增长,损害了算法的交互性 那个 photopea 应用程序非常棒。整个程序是您自己创建的吗? @Mr.Me 谢谢!是的,我做到了:)以上是关于Photoshop 的磁性套索是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章