问题标签 [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 回答
2649 浏览

android - Android 背景出现带状

我正在尝试使用 GradientDrawable 设置背景。一切正常,除了背景出现明显的条纹。我试图启用抖动,但它并没有变得更好。这是一个屏幕截图:

在此处输入图像描述

从编码的角度来看,我这样做了:

最后,XML 文件:

activity_main.xml

可绘制/背景.xml

有什么办法可以让这看起来更好吗?谢谢!

0 投票
0 回答
67 浏览

line - 大数据集:将数据一点一点地写入文件?还是连续?

.ppm我有一个工作原型代码,它从一组简单的参数创建一个图像文件。

目的是创建一张非常大的图片(大约 100000 * 100000 像素),并使用大幅面激光打印机从中打印出高分辨率壁纸。

我遇到的问题是当高度/宽度优于 22000 像素时我的程序崩溃。

在我的程序中,所有数据都存储在一段deque时间计算中,然后最后deque导出到文件中。

该程序逐行创建数据,即,在每一行之后,deque由一个数据集填充图片的一行。

deque是否可以在每次处理一行时在文件中写入,然后deque在开始下一行之前清除?

这是我的代码:

0 投票
1 回答
733 浏览

python - JES/Jython 中的抖动

我的目标是使用 Floyd-Steinberg 方法在 JES/Jython 中抖动图像。这是我到目前为止所拥有的:

上述代码的目标是扫描图像的像素并处理 Floyd-Steinberg 所需的相邻像素。

我难以理解的是如何计算和分配旧像素和新像素之间的 R、G、B 差异。

任何可以为我指明正确方向的事情都将不胜感激。

0 投票
1 回答
806 浏览

java - 在 TYPE_BYTE_INDEXED BufferedImage 上禁用抖动

我有一个 256 色的 BufferedImage,我想在其上绘制另一个 BufferedImage(> 256 色)。Java 的默认行为是抖动在低颜色模型中无法表示的颜色。我想禁用它(从而选择低颜色模型中可用的下一个最佳颜色),所以我尝试使用 RenderingHints 来指定新的渲染行为,但它不起作用:

想法?

更新:

我通过逐像素绘制新图像解决了这个问题,这可能不是很快,但它可以工作。有关详细信息,请参阅我的答案。

0 投票
2 回答
1083 浏览

image - Floyd-Steinberg-Dithering 如何工作?

我目前正在尝试在 Java 中实现 Floyd-Steinberg-Dithering 算法。经过几次失败的尝试后,我在阅读了Wikipedia上列出的伪代码后遇到了一个问题。

我想要实现的是将图像压缩成 16 色调色板。然而,在添加错误像素之后,我不是创建了调色板中甚至不存在的全新颜色吗?

但是最终将整个图像强制返回到调色板中就足以使这项工作吗?

提前致谢!

0 投票
1 回答
207 浏览

matlab - Matlab - 抖动后,RGB图像不能分成RGB

我是Matlab的新手..

我有尺寸为 512x512x3 uint8 的图像。我使用这样的“抖动”功能:

之后,我使用 imread 读取图像,如下所示:

但是,在该尺寸更改为 512x512 unit8 之后。我需要将该图像划分为 RG B。有人可以帮我解决这个问题吗?

0 投票
2 回答
614 浏览

java - Java 抖动不起作用

我正在尝试在 java 中实现 Floyd-Steinberg 算法,但我仍然有一些错误?!在我无法解决的代码中。也许你们中的一些人建议我如何解决这个问题。

这是方法

实际问题是它只是黑白而不抖动,这意味着没有灰度。

我的输入是这样的:http ://www.directupload.net/file/d/3985/spd2k9wq.png

我的输出是:http ://www.directupload.net/file/d/3985/s24rq7qo.png

请注意,“抖动”图像​​过度抖动并且几乎是黑色的。

0 投票
1 回答
162 浏览

c++ - 如何使用 glPolygonStipple 创建粗斜条纹?

我一定不明白glPolygonStipple位的排列。我认为这是一个简单的 32x32 位掩码。因此,如果我可以使用unsigned int每行。例如,这段代码(如预期的那样)产生了一个粗垂直条纹:

生产:

垂直位

哪里rol循环位移

我可以通过添加一个cout<<bitset<32>(halftone[r])<<endl;我得到正确的模式来验证:

但是 OpenGL 正在产生:

对角位

GLubyte当我传递给时,我将数组指针转换为glPolygonStipple

我的理解有问题吗?这与某些glPixelStore问题有关吗?

0 投票
2 回答
265 浏览

image-processing - 如何辨别 CIE-L*a*b* 颜色空间中哪种颜色“较低”和/或“较高”以进行有序抖动?

我已经实现了几个函数来将 sRGB 转换为CIE-L*a*b*颜色空间。

现在,我想用它来抖动,但我不确定如何准确辨别哪种颜色是“较低”颜色,哪种颜色是“较高”颜色。

当在一维色彩空间(灰度)中抖动时,事情很容易。当使用误差扩散抖动时,我会从我的调色板中计算最接近的灰度值,并将误差添加到周围的像素中,具体取决于我使用的抖动矩阵类型(例如 Floyd-Steinberg)。因为这是一维的,所以很简单,只有这一个值。但是现在我有了这个三维色彩空间,我应该将误差单独添加到每个坐标吗?
(在这一点上,这是唯一对我有意义的方法。)

当使用有序抖动矩阵进行抖动时,事情会变得更加复杂。有序抖动矩阵定义了一个阈值。为此,关于我即将抖动的当前像素,我需要知道托盘的“较低”像素值和“较高”像素值。现在,我计算到两个像素的距离,抖动矩阵的阈值决定在相邻像素之间的哪个值之后,像素要么抖动到较低的像素,要么抖动到较高的像素。
(通过使用为我的托盘中的灰度颜色值数量合理选择的矩阵,实际实现当然比计算它更优化。此外,诸如选择具有均匀间隔颜色值的托盘之类的事情等)
这 - 再次 - 在一维色彩空间中非常容易。但在 CIE-L*a*b* 中,没有“更高”或“更低”的值。

仅使用亮度来应用阈值矩阵,似乎很不正确,我的托盘中可能有两种亮度相同的颜色,然后呢?

0 投票
0 回答
306 浏览

ocr - 检测抖动图像的算法

我正在尝试检测 g4 压缩的 Tiff 图像是否会产生良好的 OCR 输出。目前,抖动 Tiff 的 OCR 结果不佳。因此,在我向 OCR 引擎发送 Tiff 之前,我想确定图像是否抖动。如果 Tiff 被抖动,则使用 Ghostscript 来执行抖动。

是否有确定图像是否抖动的算法?