问题标签 [dithering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
46 浏览

javascript - 执行php命令后台窗口

我正在开发一个基于桌面的php应用程序,我需要以Floyd-Steinberg格式打印一个人的图像。我以 RGB 格式捕获图像并将图像转换为Floyd-Steinberg抖动图像。我正在使用 ImageMagick 将 RGB 图像转换为抖动图像,在我的 windows cmd 提示符中传递命令,以便转换并保存图像。我想在我的主应用程序中执行该命令,因此当我单击图像并给出打印给定命令时,应该自动从数据库中获取该图像并转换该图像,并且它应该以抖动格式打印。我正在使用javascript传递所有这些数据通过斑马打印机打印数据。通常我尝试将图像转换为抖动图像,但我无法将图像转换为grf图像(注意:当我单击打印按钮时,打印图像时不应显示任何提示)。

那么有什么方法可以将 ImageMagick 应用程序嵌入到我的应用程序中并传递命令来打印图像

0 投票
0 回答
234 浏览

python-3.x - 使用 KMeans 进行 Floyd 抖动

在使用 KMeans 之后,我正在尝试在 Python 中实现 Floyd-Steinberg 抖动。我意识到,在抖动之后,我收到了不包含在缩小调色板中的颜色,所以我再次使用 KMeans 修改图像。但是,在尝试使用这张图片时,我完全看不到抖动。我被卡住了,我累了——请帮帮我。我的想法几乎消失了。

0 投票
1 回答
4481 浏览

python-3.x - Floyd-Steinberg 实现 Python

在使用来自 scipy 的 KMeans 处理图像后,我使用 Floyd-Steinberg 抖动来分散量化误差。给定的数据是 RGB 文件 - 灰度和颜色。问题是可视化 - 我没有抖动。

我想省略 KMeans 部分并专注于 Floyd-Steinberg:

当我用图片替换弗洛伊德时,我收到了一点抖动,即Floyd[i + 1][j] = quan * (np.float(5 / 16)) + pic[i + 1][j]。但是,这是不正确的代码!此外,我必须处理簇外的颜色,因此我再次将新像素评估为簇。我怎样才能让它工作?这个关键的错误在哪里?

0 投票
1 回答
357 浏览

processing - 时间抖动的一般方法

我正在寻找有关在处理中实现时间抖动的一般方法的一些输入。

目前我有一个处理草图,它生成一个十六进制文件,可以通过 SPI 发送到 APA102 LED 灯条。我能够实现的帧速率应该足以实现时间抖动以增加 LED 的动态范围,主要是在较低亮度的情况下。我查看了 FastLed 和 Fadecandy 以尝试了解它是如何完成的,但我无法真正弄清楚。使用这些库不是一个选项,因为动画应该在 hex 文件中“硬编码”。

谁能指出我正确的方向?

编辑:我目前实现了以下内容:首先,我计算 LED 上可实现的帧速率,这给出了我可以插入的抖动帧的数量,基于我的串中 LED 的数量和 SPI 时钟速度。LEDstrip 可以以 420fps 的速度更新,所以我每帧有 7 个“虚拟”帧,仍然能够拥有 60fps 的基本刷新率。然后我计算一个 7x7 的查找表,如下所示:

我使用浮点数进行所有伽马颜色校正计算,查找表中的每一行对应两个值之间的 1/7 步长。然后将这些添加到底 RGB 值以实现抖动。然而,这一切在视觉上并没有真正改变。与没有抖动的动画相比,我看不出有什么不同。我希望看到类似https://www.youtube.com/watch?v=1-_JtRl2ks0

0 投票
1 回答
255 浏览

c++ - 如何将这个 PGM 梯度翻转 90 度?(存储在向量中)

我一直致力于用不同的抖动方法实现灰度渐变,但任务要求渐变是水平的,从左侧的黑色开始。在我尝试水平旋转图像时,我尝试过:

我也尝试像处理二维数组一样处理向量:

到目前为止,这些方法都没有奏效。这是我正在使用的代码:

这是使用有序抖动的结果

0 投票
1 回答
478 浏览

algorithm - 绘制给定区域的像素圆

我有一些 X x Y 像素的区域,我需要逐个像素地填充它。问题是在任何给定时刻,绘制的形状都应该尽可能圆。

我认为这个算法是有序抖动的子集,在将灰度图像转换为一位时,但我找不到任何参考资料,也无法自己弄清楚。

我知道布雷森汉姆圆,但它用于绘制一定半径的圆而不是面积。

我为 10 x 10 像素网格创建了所有填充百分比的动画。由于整个区域是 10x10=100px,那么每一帧正好是 1% inc。

像素动画

0 投票
0 回答
145 浏览

arrays - 在 numpy 数组中生成一系列稍微随机的整数

我想在 numpy 数组中创建复合音频测试信号。我需要将值四舍五入为最接近的整数。其次,我想添加随机噪声或抖动。

您可以在下面看到我当前使用的代码。这应该包含 24 位整数(如果我做对了),即使它存储在 32 位整数字中(以匹配通常以这种方式存储的 pcm 音频样本)。

在此示例中,第一个正弦波音调在半峰值 (-6dBfs) 处为 1000.2Hz。这里还有两个正弦波分量,但实际上它可以包含任意数量的它们。我现在想添加一些抖动。这将被计算为数组中每个纵坐标的随机值。它将向每个数组元素(每个音频样本)添加一个小的随机生成的值,例如 + 和 - 0.5 之间的峰值。

我的代码似乎工作正常,但不包含随机“抖动”组件。有人可以让我知道如何做到这一点 - 并让我放心,我最终会得到 24 位分辨率整数。

0 投票
0 回答
295 浏览

python - python 中的 Floyd-Steinberg - 输出错误(特殊模式)

我正在尝试在 python 中实现 floyd-steinberg 抖动算法,但我的最终输出有问题,我无法找出问题所在,因为它基于维基百科上的伪代码。

输入

输出

查找最接近值的函数:

这是弗洛伊德斯坦伯格的实现:

0 投票
1 回答
318 浏览

swift - 使用 CIfilter 的误差扩散抖动图像

我正在尝试抖动图像。我制作了一些应用 floyd steinberg 抖动的快速代码,但处理图像需要很长时间,因为它没有包装在 cifilter 中,它只是快速代码。我在想,如果我可以制作一个自定义 cifilter,它将在 gpu 上进行处理并加快处理速度。但是我不是 CIfilter 语言的专家。

这是我的快速代码。为了清楚起见,我已经完整地写出了误差分布矩阵的计算。

我发现了这个https://github.com/rhoeper/Filterpedia-Swift4,它包括一个用于有序抖动的自定义过滤器,我可以将其用作基础并尝试适应错误扩散抖动。在开始学习 CIfilter 语言之前,我更愿意找到一个现有的自定义内核来完成这项工作。所以我想知道是否有人有一个现有的内核或一个链接?

有序抖动代码

  1. /li>
0 投票
1 回答
60 浏览

swift - 金属计算 - 像素依赖于其他像素颜色

我最近开始学习金属框架,所以我可以为我的 swift 应用程序编写一些过滤器。我即将编写一个基于误差扩散抖动抖动图片的金属内核。每个像素都被赋予一个颜色,然后根据原始像素颜色将值分配给相邻像素。在计算每个像素时,这些值分布在整个图像上,因此所有像素都相互依赖。该示例将是 Floyd stein berg 抖动。

使用金属处理线程的方式,这种抖动方法将不起作用。抖动图像时,只能按从头到尾的顺序计算像素。是否有可能有一个不涉及线程的内核,或者一种选择整个图像数组以由单个线程计算的方法?