问题标签 [quantization]

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 回答
97 浏览

java - Java中的图像去量化在图像上给出红色、绿色或蓝色的随机点

我对 Java 和图像处理非常陌生。我正在尝试采用 8*8 块的 DCT(离散余弦变换),然后进行量化,然后通过反量化和 IDCT 获得原始图像。

但是我最终的解码图像在图像的某些区域随机出现绿色、红色和蓝色点,尽管所有原始图像内容都被保留了。我知道这与量化过程中的舍入有关,因为不使用 Math.round 函数会给我正确的原始图片。我无法弄清楚实际原因。您可以在所附图像中看到差异

代码片段:

原始图像 解码图像

0 投票
1 回答
4028 浏览

javascript - 使用 XMLHttpRequest 为 RGB 图像生成主色

读者须知:这是一个很长的问题,但需要背景知识才能理解所提出的问题。

颜色量化技术通常用于获取图像的主。进行颜色量化的著名库之一是Leptonica,通过修改中值切割量化 (MMCQ) 和八叉树量化 (OQ) Github 的 @lokesh 的Color-thief是 MMCQ 算法在 JavaScript 中的一个非常简单的实现:

<img/>从技术上讲, HTML 元素上的图像是由一个元素支持的<canvas/>

这就是 的问题TVML,我们稍后会看到。

我最近知道的另一个实现链接在这篇文章Using imagemagick, awk and kmeans to find main colours in images链接到Using python to generate awesome linux desktop theme。作者发布了一篇关于使用 python 和 k-means 查找在那里使用的图像中的主要颜色的文章(对不起所有这些链接,但我正在追查我的历史......)。

作者非常高效,还添加了一个 JavaScript 版本,我在这里发布:Using JavaScript and k-means to find the main colours in images

在这种情况下,我们正在生成图像的主色,而不是使用 MMCQ(或 OQ)算法,而是使用 K-Means。问题是图像也必须是:

进而

这是因为 Canvas 有一个 getContext() 方法,该方法公开了 2D 图像绘制 API - 请参阅Canvas 2D API 简介

这个上下文 ctx 被传递给图像处理函数

所以可以通过Context在Canvas上绘制图片,获取图片数据:

另一个不错的解决方案是在 CoffeeScript, ColorTunes中,但这也使用了:

但是,等等,我们没有<canvas/>元素TVML

当然,也有像 Objective-C ColorCubeDominantColor这样的原生解决方案——这是使用 K-means

以及来自CocoaControls的 @AaronBrethorst非常漂亮且可重复使用的 ColorArt。

尽管这可以通过原生到 JavaScriptCore 桥接器在 TVML 应用程序中使用 - 请参阅如何将 TVML/JavaScriptCore 桥接到 UIKit/Objective-C (Swift)?

我的目标是使这项工作完全在TVJSTVML

最简单的 MMCQ JavaScript 实现不需要画布:请参阅Nick Rabinowitz的 MMCQ 的基本 Javascript 端口(修改中值切割量化),但需要图像的 RGB 数组:

这是从 HTML 中获取的<canvas/>,这就是它的原因!

[问题] 如何在不使用 HTML5 的情况下生成 RGB 图像的主色<canvas/>,但使用纯 JavaScript 从图像ByteArray获取的图像中生成主色XMLHttpRequest

[更新] 我已将此问题发布到Color-Thief github repo,将 RGB 数组计算调整为最新的代码库。我尝试过的解决方案是这样的

但它不会返回正确的 RGB 颜色数组。

[更新] 感谢所有建议我让它工作。现在在Github上有一个完整的例子,

0 投票
1 回答
629 浏览

neural-network - 自组织地图和线性矢量量化

自组织地图更适合聚类(降维)而不是分类。但是 SOM 用于线性矢量量化以进行微调。但是 LVQ 是一种有监督的学习方法。因此,要在 LVQ 中使用 SOM,应为 LVQ 提供标记的训练数据集。但是由于 SOM 只做聚类而不是分类,因此不能有标记数据,如何将 SOM 用作 LVQ 的输入?

LVQ 是否微调SOM中的集群?
在 LVQ 中使用之前,SOM 是否应该通过另一种分类算法,以便它可以对输入进行分类,以便这些标记的输入可以在 LVQ 中使用?

0 投票
0 回答
216 浏览

php - reducebit 图像从 24 位 rgb 到 8 位 rgb 但结果图像不如来自 tinypng.com 的漂亮

我使用 imagetruecolortopallete 将位图像从 24 位 rgb 减少到 8 位 rgb,但结果图像与来自 tinypng.com 的图像不一样我该怎么办?

原始图像 24 位 rgb

图像 8 位 rgb 由我的代码转换

24位

8位坏

图像 8 位 rgb 由 tinypng.com 转换

8位还行

[Spektre]:抱歉不是整张图片,但我失去了耐心,源链接太慢/不稳定(第三次尝试下载后花了大约 20 分钟......)

0 投票
1 回答
1697 浏览

c# - 量化(减少图像的颜色)

我试图在 C# 中将图像量化为 10 种颜色,但在绘制量化图像时遇到问题,我制作了映射表,它是正确的,我制作了原始图像的副本,我正在更改颜色基于映射表的像素,我使用以下代码:

0 投票
0 回答
387 浏览

python-2.7 - 调色板百分比 colorthief

我正在使用 colorthief 通过生成调色板来获取 jpg 图像中的主色。我通过下载colorthief.py并在 python 2.7 上运行成功地做到了这一点。我正在使用以下函数生成 10 种颜色的调色板:

现在,我想找出调色板中存在的 10 种颜色的百分比分解,以找出最主要的颜色有多显着。

我知道这使用了修改的中值切割算法,其中中值用于切割排序的颜色,然后取像素 RGB 值的平均值。

我试图在某些地方编辑代码,但我不确定在 colorthief.py 中编辑代码的确切位置。

0 投票
1 回答
102 浏览

sampling - 脉冲编码调制过程中如何存储信号频率?

我是采样和量化概念的新手,尽管阅读了很多文章,但我不清楚如果我录制简单的声音,PCM 是如何工作的。

如果我以 44.1 KHz 采样率、16 位量化和单声道录制音符 A3 (220hz) 1 秒;根据我的阅读,PCM 流将记录 A3 音符的幅度 44100 次,并尝试将幅度值拟合到 65536 级别之一。

在将此数字信号转换回模拟信号时,我们如何知道原始信号是 220hz ?PCM 编码只保存了幅度值——不管原始输入中存在什么频率。

0 投票
1 回答
978 浏览

javascript - D3 量化色标未显示正确的颜色分布

我试图弄清楚如何在给定可能具有广泛值的数据集的情况下获得正确的调色板。(想想github的贡献热图)

请注意,这些值是动态的,因此我不确定是否可以使用d3.scale.threshold.

量化数据集:

我正在使用以下色标,但是,在应该着色的 41 个元素中,只有前四个有颜色,其他所有元素都设置为 #eeeeee(灰色)。

量化输出:


更新:

对于以下集合,使用分位数似乎无法按预期工作:

分位数数据集:

使用以下色标:

分位数输出:

我希望所有大于 0 的值都有颜色,所有 0 都是#eeeeee。

任何想法我做错了什么?

0 投票
1 回答
66 浏览

java - 颜色量化稀释纯白色

我有一个简单的量化函数

它所做的是将颜色减少到较低细节的颜色,然后将其扩展,这人为地限制了托盘,我将它用于抖动过滤器,通过该功能的图像产生这个

In: 未量化的色调 Out: 量化的色调轮

结果这几乎是完美的,除了白色被减少为灰色,我理解原因是我在算法中划分颜色的地板,但我不知道如何解决这个问题,任何建议将不胜感激

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
115 浏览

h.264 - vlc中的熵解码器

VLC播放器源代码中熵解码的地方在哪里(GitHub链接)?我在 VLC 解码器中找到了一个解析 NAL 和帧切片的地方,但我找不到任何关于熵解码器或量化系数的提及。