问题标签 [downsampling]
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 中:从文件中读取图像,对于大图像,通过降低分辨率来减小尺寸,将其保存在 Blob 中
我的 Android 应用程序从 sd 卡读取图像文件并将图像存储在 sqlite 数据库中的 blob 中。
目前我正在将 FileInputStream 转换为字节数组并将其存储在 blob 中。一个 blob 不能超过 1MB 的大小,所以在这种情况下,我会发布一条错误消息并取消操作。
我想通过降低分辨率(而不是大小)来摆脱 1MB 的限制并存储更大的图像。
我可以使用 BitmapFactory 选项 inSampleSize 来压缩图像和/或将位图转换回字节 [],例如使用 bitmap.compress 来寻求解决方案。然而,即使是使用 BitmapFactory 创建的未压缩位图的大小也比原始字节 [] 大得多,所以我担心我会失去质量。
任何想法如何解决我的问题?非常感谢,格哈德。
python - 如何重新采样/下采样不规则的时间戳列表?
简单的问题,但我无法找到简单的答案。
我有一个数据列表,以秒为单位计算事件发生的时间:
我想计算每小时(3600 秒)发生多少事件并创建这些计数的新列表。
我知道这称为下采样,但我能找到的所有信息都与传统时间序列有关。
对于上面的示例,新列表如下所示:
任何帮助将不胜感激。
opengl - 在屏幕 OpenGL 上获取纹理坐标
我正在尝试创建一个实时变化的色调映射运算符。
我有一个球形纹理上的 LDR 图像(在将运算符应用于 HDR 图像之后),在一个始终围绕 Y 轴旋转的球体上,并且相机在球体内;这是一个例子:
我正在做手动下采样来计算图像的对数平均亮度,它现在工作正常。
现在,我希望操作员实时更改,因此我只想计算我在每一帧看到的图像部分的对数平均亮度,以实时重新计算和更改操作员效果。
所以,要做到这一点,我需要知道我的纹理在每一帧屏幕上的坐标,选择它们并丢弃其他的进行下采样。
有什么帮助吗?
python - Python 快速对称中心图像下采样算法
我正在尝试在 Python 中加速一个简单的对称居中图像下采样算法。我已经使用一种天真的方法作为下限基准对其进行了编码,但是我希望它能够更快地工作。
为简单起见,我的图像是一个分辨率为 4608x4608 的圆(我将使用此比例的分辨率),我希望将图像下采样 9 倍(即 512x512)。下面是我生成的代码,它以高分辨率创建图像并将其下采样 9 倍。
所有这些基本上都是从高分辨率映射一个像素。空间到低分辨率空间中的一个(围绕质心对称),并将给定高分辨率区域中的所有像素与低分辨率的一个像素相加。
我在我的机器上设置了 BLAS 和 LAPACK 的 numpy ,我知道利用这一点可以获得显着的收益,但是我对如何进行有点困惑。这是我迄今为止的进步。
这个当前版本在我的机器上快了大约 16 倍,但它并不完整。我不确定如何从高分辨率映射新的下采样像素。图像有效。
可能有另一种方法可以加快速度?不确定...谢谢!
matlab - 在matlab中对二维矩阵进行下采样,按块取平均
假设我有一个矩阵 A,其尺寸为 4x4。
现在我想通过因子 2 对该矩阵进行下采样,以获得一个维度为 2x2 的新矩阵 B。
我想通过以下方式进行下采样:
让 A 成为
我希望 B 成为
为了得到 B(1,1) = 我取平均值 (1, 5, 2 and 6)
要得到 B(1,2) = 我取平均数 (9, 13, 10 和 14)
为了得到 B(2,1) = 我取平均值 (3, 7, 4 and 8) 等等。
因此,对于 B 中的每个元素,我从 A 中获取相应的 2x2 块并取其平均值。
在我的例子中,矩阵 A 的维度很大。此外,下采样因子可以是任意的。
例如,A =
用于大小为 3/2 的下采样。
矩阵 B 的大小为 4x4。
对于每个 B 单元,我必须采用不重叠的 1.5x1.5 块 A。
例如,
B(1,1) = 平均值(1, 0.5x7, 0.5x2, 0.5x8)
B(2,1) = 平均值(0.5x2, 0.5x8, 3, 9)
B(3,1) = 平均值(4, 0.5x10, 0.5x5, 0.5x11)
B(4,1) = 平均值(0.5x5, 0.5x11, 6, 12)
等等。
没有for循环有没有更快的方法来做到这一点?
textures - How to downsample a texture
(I'm doing this in Apple Metal, but I think the question applies to OpenGL and DirectX too. Code examples from Metal or OpenGL are highly welcome.)
I have one texture smallTex
whose size is a multiple of the size of another texture bigTex
.
For example, smallTex
has dimensions 32x32
and bigTex
has 128x128
.
I need to downsample the contents of bigTex
into smallTex
so that every pixel in smallTex
contains the average values of the corresponding pixels in bigTex
.
First I thought I could create a fragment shader which samples from bigTex
and renders to smallTex
. However, this way I would lose much information, since the sampling reads from at most four pixels and interpolates between them.
What I need is real downsampling, where every pixel in the source has the same influence on the result.
I read that this could be done using mipmaps (which essentially are downsampled copies of the original texture). But then I would have to enable mipmapping on bigTex
, which will have a negative performance impact since I'm doing many rendering (compute) steps on bigTex
, which would result in a lot of work for the GPU to update the mipmaps.
What I need is a direct GPU command to downsample the texture.
Is that possible? Any hints?
android - 使用 LayoutParams 对图像进行下采样会导致不平滑
我正在尝试使用 LayoutParams 在用户滚动时使 ImageView 更小。问题是,当图像视图大小减小时,由于发生默认的下采样,它看起来很糟糕 -
原来的
调整大小
代码
下采样
位图的设定
我应该怎么做才能改善缩小比例并获得平滑的图像
python - 下采样 wav 音频文件
我必须在不使用任何外部 Python 库的情况下将 wav 文件从 44100Hz 降采样到 16000Hz,因此最好使用wave
和/或audioop
. 我尝试使用setframerate
函数将 wav 文件的帧速率更改为 16000,但这只会减慢整个录制的速度。如何将音频文件下采样到 16kHz 并保持相同的音频长度?
matlab - 如何在 Matlab 中找到 interp1 的正确采样率
我正在尝试为 interp1(或抽取或重新采样)找到正确的采样率,以绘制 imfreehand 获得的轴上的多个点。
首先我绘制一些东西(任何不是正弦特定的东西)
然后在轴上用 imfreehand 画一些东西,如下所示:
我从 imfreehand 对象中提取数据部分(大小 1x413) ,然后我尝试用原始线的长度绘制它们,但缩放是错误的......
有什么提示吗??
此外,与建议的下采样相同的结果..
有什么提示吗??x2
javascript - 将 PCM 音频从 44100 下采样到 8000
我从事音频识别演示已经有一段时间了,api 需要我传递一个采样率为8000或16000的 .wav 文件,所以我必须对其进行下采样。我尝试了以下两种算法。尽管它们都没有像我希望的那样解决问题,但结果存在一些差异,我希望这会让它更清楚。
这是我的第一次尝试,当sampleRate % outputSampleRate = 0时它工作正常,但是当outputSampleRate = 8000 或 1600时,输出音频文件是无声的(这意味着输出数组的每个元素的值都是 0):
所以这是我的第二次尝试,它来自一家大公司,但它也不起作用。更重要的是,当我设置sampleRate % outputSampleRate = 0它仍然输出一个静默文件:
如果我的设置有误,这里是encodeWAV函数:
困扰了我很长时间,请告诉我我错过了什么...
------------------解决后-------- --------------
我很高兴它现在运行良好,这是函数interleave()的正确版本:
所以你可以看到这是我传递给它的变量类型不正确~再次感谢亲爱的@jaket和其他朋友~虽然我自己想通了,但他们让我更好地了解了原来的东西~~~: )