问题标签 [resampling]
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.
python - 高效的 numpy 零阶保持
有没有一种有效的方法来使用零阶保持重新采样一个 numpy 数组?理想情况下具有像numpy.interp这样的签名?
我知道scipy.interpolate.interp1d,但我确信矢量化替代方案可用于处理此类情况。
python - 使用 Python 图像库和光环效果调整透明 png 的大小
关于 SO 有几个类似的问题,但没有一个真正有帮助。基本上我正在尝试调整一个简单的 png 图像的大小,如下所示:
http://media.spiralknights.com/wiki-images/3/3e/Equipment-Proto_Sword_icon.png (来自mmo Spiral Knights,版权三环娱乐)
我最初实现了一个在 php 中使用这些图像的实用程序,并且那里的调整大小实用程序运行良好。我使用了 PHP 文档中 imagecopyresampled 页面上描述的方法。
老实说,我什至无法在 Photoshop 中更好地调整大小,但结果在 python 中几乎是灾难性的。我一直得到光晕效果,我相信这至少部分是透明像素的实际 RGBA 值。在这里,这张照片更能说明问题:
(倒数第二个调整大小只是我在另一个论坛上看到的将第一个调整到最终大小的两倍的建议,它至少有一点帮助,但还不够)
调整大小时,图像已处于 RGBA 模式。
如您所见,PHP 和 Photoshop 调整大小是无晕的。老实说,除了 PHP 调整大小之外的所有工作都做了太多工作,我喜欢 php 图像中的最小调色板(如果您查看较大的版本,您会发现 PHP 调整大小在颜色之间使用较少),但我可以接受 Photoshop 的方式已经resize了,甚至python的内部都resize了,但是晕轮是不能接受的。
在我看来 - 如果我错了,请纠正我 - PHP 和 Photoshop 似乎知道在插值时不使用 alpha 通道中像素的颜色,但是 python 使用的是浅色边框,否则它是透明的, 在其调整大小。
不幸的是,有很多不同的图标需要调整大小,具有不同的配置文件,所以它们并不像这个圆形图标那么简单,但这只是我在试验时使用的第一个。
这本身并不是一个代码问题,但是如果您需要看一些东西,那么这就是要点:
最终的问题是:有没有办法告诉 PIL 在重新采样时不要使用 alpha 为 0 的像素的颜色?
discrete-mathematics - 将 2 个子集中的数据重新采样到 eqully
你能帮我一点吗
我有 2 个子集二值图像曲线 A 和 B,我如何重新采样数据 A 或 B 以相等。
例如
曲线 A,{(1,1),(1,2),(1,3),(1,4),(1,5)}
曲线 B, {(5,5),(5,4),(5,3)}
我想将元素 B 的数量重新采样为 5 以同样 A
B(重采样)==> {(5,5),(5,4.5),(5,4),(5,3.5),(5,3)}
我已经在 C++ 中实现了这个方法。但我不确定这是否称为线性插值方法
,另一个问题我不知道如何根据数学公式或几何离散来平等地编写此方法 A 和 B?
非常感谢您
基蒂
python - 使用 pandas 0.8 重新采样的错误?
我目前正在努力使用 pandas 0.8.0b1 的重新采样功能。
例如,当我尝试将(使用“平均值”)10 分钟值聚合为每月值时,该函数似乎使用一个月的最后一天数据作为下个月的平均值......
这是一个包含 3 个月 10 分钟数据的简单时间序列的示例
- 2012 年 1 月:所有值 = 1
- 2012 年 2 月:所有值 = 2
- 2012 年 3 月:所有值 = 3
我使用 df.resample('M',how='mean') 获得的每月平均值是:
但我想得到类似的东西:
这是代码:
如果现在,我删除最后一天:
我得到(几乎)我想要的东西:
你可以帮帮我吗 ????是bug吗???
java - 最佳实践:在哪里重新采样 PCM 以及使用哪个工具?
我开发了一个内核模块(Android),它为我提供:
我想用java将它流式传输到Apple的机场快线(AEX)。
AEX 需要 44.1 kHz PCM,所以我必须重新采样 PCM 流。
我有以下可能性,但哪个是最好的?
1. 使用 C 程序“raop_play”(raop-play的一部分)
2.在java中重采样和流(使用libresample JNI-bridge)
3. 内核模块中已经重采样
c++ - 来自 IMediaObject::ProcessInput 的 HResult 0x80040204
当我使用 DirectXMediaResampler 将 PCM 声音重新采样为 IEEE:Float 声音时,我得到了这个 Hresult。以相同的采样率更改每个样本的位数是没有问题的。还从 IEEE:Float 重新采样到 PCM。此 HResult 未在 DMO 对象的上下文中记录。它不会发生在每次重采样上,而是定期发生。
有谁知道或猜到是什么意思。
c - PCM 下采样:输入帧/输出帧与缓冲区大小
我有一个程序读取
每次从内核模块“读取”到一个 16384 字节的大缓冲区(= 从 ALSA 的环形缓冲区读取)。
每次“读取”后,我必须将 48 kHz 下采样到 44.1 kHz,并且输出必须更小/等于 4096 帧(流式传输到 Apple 的 Airport Express)。
它已经工作了,但是输出听起来“太快”并且“闪烁”(我认为是由于“读取”中的帧丢失,如下所述),然后有时会停止(我认为“太快”会导致“等待数据” )。
对于重采样,我使用libsamplerate中的src_process(又名 Secret Rabbit Code):
具有以下参数:
当我错过了 ALSA 内部环形缓冲区中的一些帧时,我的内核模块会告诉我,这会发生。
我缺少大约 100 帧/“读取”。
也许有人理解这个问题并可以说“4096 帧缓冲区太小”或其他内容。
同时我会重新检查我的代码。
javascript - 用于重采样数组的 Javascript 库?
我正在尝试在 HTML 画布上可视化一些数据,并且遇到了与此类似的问题。也就是说,我的数据大小与我的画布大小不完全匹配。
在一个例子中,我想在 100px 宽的画布上绘制一个 1024 点信号。(例如,音频波形。)
在另一个例子中,我想在 100 像素高 x 500 像素宽的画布上显示 1024 x 5000 点矩阵。(例如,音频频谱图。)
在这两种情况下,我都需要重新采样我的数据以使其适合画布。有谁知道 Javascript 中的库/工具包/函数可以做到这一点?
** 编辑 **
我知道我可以在这里使用很多技术。一种可能性是简单地丢弃或复制数据点。这将在紧要关头完成,但众所周知,丢弃/复制会产生看起来“锯齿状”或“块状”的结果(参见此处和此处)。我更喜欢使用稍微复杂一点的算法来输出更平滑的图像,例如Lanczos、双线性或双三次重采样。这些中的任何一个都可以满足我的需求。
不过,我的问题不是关于使用哪种算法,而是关于它们中的任何一个是否已在开源 javascript 库中实现。令人惊讶的是,我在 JS 中找不到太多东西。编写我自己的重采样函数显然是一种选择,但我想先咨询 SO 社区,以确保我没有重新发明轮子。
(这个答案给出了一个非常接近我想要的代码列表,除了它直接在画布对象而不是数据数组上操作,它强制输入和输出的纵横比相同。如果没有别的可用,我绝对可以使用它,但我希望有一个更通用和灵活的解决方案,类似于 Matlab 的resample。)
audio - 正确解码/编码原始 PCM 数据
我正在用 C++ 编写我的 WAVE 解码器/编码器。我已经设法在不同的样本大小(8、16 和 32)之间正确转换,但我需要一些关于通道和频率的帮助。
渠道:
如果我想从立体声转换为单声道:
- 我只从一个通道(哪个通道?1 还是 2?)获取数据?
- 还是我从通道 1 和 2 中取平均值作为单声道。
如果我想从单声道转换为立体声:(我知道这不是很科学)
- 我可以简单地将来自单个通道的样本添加到两个立体声通道中吗?
- 有没有更科学的方法来做到这一点(例如:插值)?
采样率:
如何更改采样率(重新采样),例如:从 44100 Hz 到 22050 Hz:
- 我是否只需为新的(较低频率)值取 2 个连续样本的平均值?
- 还有更多的科学算法吗?
c++ - opencv,访问元素进行下采样但出现白色窗口
我正在学习opencv的c ++ api,对于一个简单的方法,我已经开始尝试对图像进行下采样(好吧,我知道有高斯重采样的pyrDown,但它用于学习如何访问Mat
类中的元素)
这是我的代码:
现在,我正在以一种愚蠢的方式进行下采样:我只是在删除元素。我正在尝试将 c++ api 与Mat_
.
在手动窗口中,我得到一个白色窗口,我不明白为什么。事件如果我尝试手动计算我看到不同的值.. 这段代码有什么问题?
编辑 1
我找到了解决方案:
在......的最后downsample()
现在我的问题是:为什么?我声明Mat(s, src.type());
为什么要修改它?
编辑 2
如果我用@go4sri 回答这一行
我得到这个输出:
我真的不明白为什么..