问题标签 [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.
android - Android 背景出现带状
我正在尝试使用 GradientDrawable 设置背景。一切正常,除了背景出现明显的条纹。我试图启用抖动,但它并没有变得更好。这是一个屏幕截图:
从编码的角度来看,我这样做了:
最后,XML 文件:
activity_main.xml
可绘制/背景.xml
有什么办法可以让这看起来更好吗?谢谢!
line - 大数据集:将数据一点一点地写入文件?还是连续?
.ppm
我有一个工作原型代码,它从一组简单的参数创建一个图像文件。
目的是创建一张非常大的图片(大约 100000 * 100000 像素),并使用大幅面激光打印机从中打印出高分辨率壁纸。
我遇到的问题是当高度/宽度优于 22000 像素时我的程序崩溃。
在我的程序中,所有数据都存储在一段deque
时间计算中,然后最后deque
导出到文件中。
该程序逐行创建数据,即,在每一行之后,deque
由一个数据集填充图片的一行。
deque
是否可以在每次处理一行时在文件中写入,然后deque
在开始下一行之前清除?
这是我的代码:
python - JES/Jython 中的抖动
我的目标是使用 Floyd-Steinberg 方法在 JES/Jython 中抖动图像。这是我到目前为止所拥有的:
上述代码的目标是扫描图像的像素并处理 Floyd-Steinberg 所需的相邻像素。
我难以理解的是如何计算和分配旧像素和新像素之间的 R、G、B 差异。
任何可以为我指明正确方向的事情都将不胜感激。
java - 在 TYPE_BYTE_INDEXED BufferedImage 上禁用抖动
我有一个 256 色的 BufferedImage,我想在其上绘制另一个 BufferedImage(> 256 色)。Java 的默认行为是抖动在低颜色模型中无法表示的颜色。我想禁用它(从而选择低颜色模型中可用的下一个最佳颜色),所以我尝试使用 RenderingHints 来指定新的渲染行为,但它不起作用:
想法?
更新:
我通过逐像素绘制新图像解决了这个问题,这可能不是很快,但它可以工作。有关详细信息,请参阅我的答案。
image - Floyd-Steinberg-Dithering 如何工作?
我目前正在尝试在 Java 中实现 Floyd-Steinberg-Dithering 算法。经过几次失败的尝试后,我在阅读了Wikipedia上列出的伪代码后遇到了一个问题。
我想要实现的是将图像压缩成 16 色调色板。然而,在添加错误像素之后,我不是创建了调色板中甚至不存在的全新颜色吗?
但是最终将整个图像强制返回到调色板中就足以使这项工作吗?
提前致谢!
matlab - Matlab - 抖动后,RGB图像不能分成RGB
我是Matlab的新手..
我有尺寸为 512x512x3 uint8 的图像。我使用这样的“抖动”功能:
之后,我使用 imread 读取图像,如下所示:
但是,在该尺寸更改为 512x512 unit8 之后。我需要将该图像划分为 RG B。有人可以帮我解决这个问题吗?
java - Java 抖动不起作用
我正在尝试在 java 中实现 Floyd-Steinberg 算法,但我仍然有一些错误?!在我无法解决的代码中。也许你们中的一些人建议我如何解决这个问题。
这是方法
实际问题是它只是黑白而不抖动,这意味着没有灰度。
我的输入是这样的:http ://www.directupload.net/file/d/3985/spd2k9wq.png
我的输出是:http ://www.directupload.net/file/d/3985/s24rq7qo.png
请注意,“抖动”图像过度抖动并且几乎是黑色的。
c++ - 如何使用 glPolygonStipple 创建粗斜条纹?
我一定不明白glPolygonStipple
位的排列。我认为这是一个简单的 32x32 位掩码。因此,如果我可以使用unsigned int
每行。例如,这段代码(如预期的那样)产生了一个粗垂直条纹:
生产:
哪里rol
是循环位移:
我可以通过添加一个cout<<bitset<32>(halftone[r])<<endl;
我得到正确的模式来验证:
但是 OpenGL 正在产生:
GLubyte
当我传递给时,我将数组指针转换为glPolygonStipple
我的理解有问题吗?这与某些glPixelStore
问题有关吗?
image-processing - 如何辨别 CIE-L*a*b* 颜色空间中哪种颜色“较低”和/或“较高”以进行有序抖动?
我已经实现了几个函数来将 sRGB 转换为CIE-L*a*b*颜色空间。
现在,我想用它来抖动,但我不确定如何准确辨别哪种颜色是“较低”颜色,哪种颜色是“较高”颜色。
当在一维色彩空间(灰度)中抖动时,事情很容易。当使用误差扩散抖动时,我会从我的调色板中计算最接近的灰度值,并将误差添加到周围的像素中,具体取决于我使用的抖动矩阵类型(例如 Floyd-Steinberg)。因为这是一维的,所以很简单,只有这一个值。但是现在我有了这个三维色彩空间,我应该将误差单独添加到每个坐标吗?
(在这一点上,这是唯一对我有意义的方法。)
当使用有序抖动矩阵进行抖动时,事情会变得更加复杂。有序抖动矩阵定义了一个阈值。为此,关于我即将抖动的当前像素,我需要知道托盘的“较低”像素值和“较高”像素值。现在,我计算到两个像素的距离,抖动矩阵的阈值决定在相邻像素之间的哪个值之后,像素要么抖动到较低的像素,要么抖动到较高的像素。
(通过使用为我的托盘中的灰度颜色值数量合理选择的矩阵,实际实现当然比计算它更优化。此外,诸如选择具有均匀间隔颜色值的托盘之类的事情等)
这 - 再次 - 在一维色彩空间中非常容易。但在 CIE-L*a*b* 中,没有“更高”或“更低”的值。
仅使用亮度来应用阈值矩阵,似乎很不正确,我的托盘中可能有两种亮度相同的颜色,然后呢?
ocr - 检测抖动图像的算法
我正在尝试检测 g4 压缩的 Tiff 图像是否会产生良好的 OCR 输出。目前,抖动 Tiff 的 OCR 结果不佳。因此,在我向 OCR 引擎发送 Tiff 之前,我想确定图像是否抖动。如果 Tiff 被抖动,则使用 Ghostscript 来执行抖动。
是否有确定图像是否抖动的算法?