Photoshop 抠图滤镜是如何实现的?

2024-03-11

Photoshop 有很多很酷的功能艺术滤镜 http://alanwho.com/photoshop/photoshop-artistic-filters/,我很想了解底层算法。

一种特别有趣的算法是 Cutout 过滤器(上面链接中的编号 2)。

它具有三个可调参数:级别数、边缘简单性和边缘保真度。级别数似乎驱动了一个简单的色调分离算法,但其他滑块在技术上的作用却让我困惑。

我认为他们正在做一些与 Vornoi 图或 k 均值分区相关的事情,但是在 wikipedia 上浏览并没有得到任何明显映射到 Photoshop 正在做的事情的结果,特别是考虑到滤镜本身渲染的速度有多快。

有 Photoshop 滤镜技术描述的来源吗?或者,您对如何实现这个特定的过滤器有什么想法吗?


边缘检测通常是 Sobel 或 Canny 滤波器,然后边缘用链码连接在一起。
看看类似的东西OpenCV http://opencv.willowgarage.com/wiki/图书馆了解详情

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Photoshop 抠图滤镜是如何实现的? 的相关文章

  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

    现代浏览器和 Node js 等环境允许您说 a 1 b 2 或 1 2 3 这在历史上一直是 Internet Explorer 的问题 Internet Explorer 9 中修复了此问题吗 对此有两种不同的答案 一种是对象初始值设定
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 使用Multiprocessing和Pool时如何访问全局变量?

    我试图避免将变量冗余地传递到dataList e g 1 globalDict 2 globalDict 3 globalDict 并在全球范围内使用它们 global globalDict然而 在下面的代码中并不是这样做的解决方案 是否有
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • tkinter:打开一个带有按钮提示的新窗口[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 用户如何按下 tkinter GUI 中的按钮来打开新窗口 我只需要非常简单的解决方案 如果代码也能被解释那就太好了 这
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定
  • 如何从 bootstrap-markdown.js 调用 .getContent 和 .parseContent

    我是使用 Bootstrap 插件的新手 刚刚通过代码学院 http www codecademy com en skills make an interactive website 我真的很想用这个很棒的引导 Markdown 插件 ht
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c
  • 如何在 Erlang 中将数字转换为单词?

    我发现了一个关于将数字转换为 单词 的有趣问题 代码高尔夫 数字到单词 https stackoverflow com questions 309884 code golf number to words 我真的很想看看你如何在 Erlan
  • Angularjs:两种方式的数据绑定和控制器重新加载

    如果使用路由和控制器 则模型不会在控制器重新加载之间保存其状态 Angular 在每个路由负载上创建控制器实例和新范围 例如 我在输入中键入具有 ng model something 的内容 转到另一条路线 然后返回第一条路线 我输入的所有
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • 成功插入数据后如何清除单选按钮列表?

    任何人都可以帮我解决这个简单的问题 如何在提交表单后清除单选按钮列表的选择 我需要在我的 ASP NET Web 应用程序中使用它 当用户单击清除按钮时 我需要清除单选按钮列表的选择 提前致谢 你可以 设置 myrbList Selecte
  • 删除带有嵌入空格的路径中的所有 .SVN 文件夹

    In 这个问题 https stackoverflow com questions 5935776 how to delete svn folders in my source tree 13850323 13850323以及其他一百个地方
  • Python - Pandas:给定行中最小值的数字/索引

    我有一个 pandas 数据框 具有一行和多列 我想获取给定行中最小值的列号 索引 我找到的代码是 df columns get loc colname 上面的代码要求提供列名称 我的数据框没有列名 我想获取最小值的列位置 Use argm
  • Android Studio:设计视图中“创建景观变化”的按钮在哪里?

    我在哪里可以找到按钮创造景观变化 https stackoverflow com questions 28815769 android studio creating landscape layouts answer 29467041 在我
  • 如何在 SQLiteDatabase 查询中测试光标是否为空

    我有一个由以下代码创建的 SQL 表 public void onCreate SQLiteDatabase db db execSQL CREATE TABLE TABLE NAME ID INTEGER PRIMARY KEY AUTO
  • 布尔值 FALSE 和 TRUE 可以重新定义吗

    我正在读一本关于 PHP 以及如何使用 PHP 的书TRUE and FALSE 它说 事实上 小写版本更稳定 因为 PHP 不 允许您重新定义它们 大写的可以重新定义 我尝试重新定义TRUE and FALSE 但没有成功 我谷歌重新定义
  • 存储大量数据:数据库还是文件系统?

    假设我的应用程序创建 存储和检索大量条目 数千万 每个条目具有可变数量的不同数据 例如 某些条目仅具有几个字节 例如ID 标题 而某些条目可能具有兆字节的补充数据 每个条目的基本结构相同 并且采用 XML 格式 条目是任意创建和编辑的 很可
  • 从 CouchDB 解析 JSON 时如何超越“total_rows”

    我使用以下 jQuery 代码从 CouchDB 获取 JSON 文件 Function getURL var api url http 127 0 0 1 5984 couchcontentqueue design DocCollecti
  • 子类化后的委托?

    抱歉 我无法为标题提出一个简短的问题 如果我使用委托协议和属性对一个类进行子类化 我的委托是否仍然需要实现超类的委托协议 或者我是否必须为子类定义一个新的委托协议 就我而言 我细分了UIImagePickerController UIIma
  • Google 语音 API - php 不返回任何内容

    我的代码受到用于语音转文本的全双工谷歌语音 API 的 php 版本的启发 http mikepultz com 2013 07 google speech api full duplex php version http mikepult
  • Swift 中的构建器模式设置方法

    我刚刚从 Android 基础转移到 ios 在 swift 中寻找构建器模式 get 和 set 方法 但找不到类似的东西 仅发现以下内容 var ptype String get return self ptype set ptype
  • Spring WebSocket 使用 SockJS 连接到不同的域

    Spring 中的 WebSockets 是一个相当新的主题 我厌倦了寻找更多内容 我的问题是连接到来自不同域的服务 我正在与 Lineman 一起构建前端 并与 Spring Boot 一起构建后端 我在两个不同的端口上有这些应用程序 8
  • 删除 QGridLayout 中的所有间距

    我正在尝试以编程方式 使用 Qt 4 6 构建一个包含一系列的窗口QPushButton的 全部挤在一起 它应该看起来像这样 我称之为工具箱 工具箱图像http img99 imageshack us img99 9853 examplez
  • WPF 中的报表查看器

    我有一个WPF项目 我需要预览水晶报表 是否有可能做到这一点 我在 WPF 项目中找不到报表查看器控件 thanks 您可以使用CrystalReportViewerWindows 窗体与 Windows 窗体互操作技术的结合 将查看器添加
  • PhpDocs:链接到“@deprecated”标签描述中的另一个方法?

    是否可以链接到另一个方法 类 属性 等 在我的项目内联内 deprecated标签 像这样 Method description deprecated 1 0 Reason for deprecation use link newMetho
  • QXcbIntegration:无法创建平台 OpenGL 上下文,GLX 和 EGL 均未启用

    我有一个用 QT 和 OpenGL 构建的 unix 二进制文件 我试图在 linux 64 上执行它 它是一个简单的可视化程序 显示 2d 和 3d 图形 我已经安装了所有必需的依赖项 例如 QT 和 openGL 库 但是 我在尝试执行
  • Pygame 根据位置重叠精灵(绘制顺序)

    总的来说 我对 Pygame 和 Python 还比较陌生 所以希望这不是太陌生 I m making a top down RPG and I have two Sprite objects with images that look f
  • 为 click.options() 创建包装装饰器

    我正在尝试为点击装饰器创建一个包装装饰器 click options foo required True import click def foo option func orig decorator click option foo re
  • 使用相同Keycloak的2个APP的身份验证(SSO)

    我需要您针对特殊用例的帮助 我在互联网上搜索但没有找到任何适合我的情况的内容 我是 keycloak 的新手 所以这可能很容易做到 但我未能解决它 我有两个具有 Spring Boot 安全性的应用程序 它们连接到同一个 keycloak
  • Photoshop 抠图滤镜是如何实现的?

    Photoshop 有很多很酷的功能艺术滤镜 http alanwho com photoshop photoshop artistic filters 我很想了解底层算法 一种特别有趣的算法是 Cutout 过滤器 上面链接中的编号 2