问题标签 [noise]

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

image-processing - 噪声图像中的特征检测

我已经建立了一个带有网络摄像头和功能匹配的成像系统,这样当我移动摄像头时;我可以跟踪相机的运动。我正在做类似于这里的事情,除了网络摄像头框架作为输入。

它对于“好”图像非常有效,但是在非常低的光线下拍摄图像时会出现很多噪点(相机高增益),这会干扰特征检测和匹配。基本上,它没有检测到任何好的特征,当它检测到时,它无法在帧之间正确匹配它们。

有谁知道一个好的解决方案?还有哪些其他方法可用于查找和匹配特征?

以下是两个特征非常低的示例图像:

第一帧

第 2 帧

0 投票
3 回答
1172 浏览

c# - Libnoise XNA translate perlin 导致失真

我一直在寻找在 XNA 中产生噪音的库。Libnoise 似乎是最合乎逻辑的选择。该库非常易于使用并产生了一些很好的结果。不过,我在生成其他部分时遇到了一些麻烦。C++ 文档对此有一个非常好的功能:

XNA 版本不是这样工作的,而是使用 translate 函数在生成的高度图中“移动”。

翻译.cs

用法

这就是问题所在;虽然它确实翻译了高度图,但它也扭曲了它。这看起来很奇怪,因为 perlin 保持不变。我可以想象改变 Z 会导致高度图改变,但我只是改变 X 轴。

在此处输入图像描述

对此有任何想法吗?

0 投票
2 回答
753 浏览

2d - 柏林噪音援助

好的,所以我找到了这个文章,我对它的某些部分感到困惑。如果有人能更深入地向我解释这个过程,我将不胜感激,因为我已经尝试编写这个代码 2 个月了,但仍然没有得到一个正确的版本。我对文章的持久性部分特别感到困惑,因为我大多不明白作者试图解释什么,在文章的底部他谈到了这个的 2D 伪代码实现,但是 PerlinNoise_2D 函数没有对我来说有意义,因为在随机值被平滑和插值之后,它是一个整数值,但函数采用浮点值?在余音部分下面是八度音阶部分。我不太明白,因为他将平滑函数“添加”在一起以获得 Perlin 函数。他所说的“添加”是什么意思,因为您显然没有将这些值相加。因此,如果有人可以向我解释这些部分,我将非常高兴。谢谢。

这是我的代码:

而且我没有包括平滑部分,因为那是大约 400 行代码来在块之间进行平滑。

0 投票
1 回答
172 浏览

random - Perlin Noise:需要一点帮助

我阅读了这篇关于 Perlin Noise 的文章,如果有人有答案,我有几个问题,因为我似乎遇到了一些问题。在靠近底部的伪代码 2D 部分中,它显示他随机生成数字,但不是将一个变量作为 1D 代码中的参数,而是使用“x”和“y”。这在二维噪声中是否需要?此外,他的 PerlinNoise_2D 函数现在采用 2 个浮点参数,而不是 1 维示例中的 1 个。这些浮点值应该是什么以及它们来自哪里,因为我无法找到如何在我的一生中获得它们。因此,如果有人知道我的任何问题的答案,我将不胜感激。谢谢。

编辑:好的更简单的问题,我在哪里可以获得作为 PerlinNoise_2D 函数参数的 2 个浮点值?

0 投票
0 回答
855 浏览

java - Java Perlin 噪声实现问题

嘿stackoverflow社区!在过去的两周里,我一直在阅读有关 perlin 噪声的信息,并尝试以最基本的方式自己实现它。即便如此,我的程序也不起作用。它始终输出几乎相似的外观结果,并且持久性似乎没有改变任何东西。这是我的代码:

我不明白为什么它不起作用,因为它完全按照本文中的伪代码所说的那样做。任何人都可以帮助我解决这个问题吗?谢谢。

编辑:好的,请有人解释一下执行此操作所需的过程,请我疯狂地想弄清楚这一点。在过去的两周里,我一直在努力解决这个问题,但没有人给我任何帮助。如果您知道如何执行此操作,请向我解释一下,我将不胜感激。谢谢。

0 投票
2 回答
2393 浏览

ios - iOS:在运行时向背景添加噪音

提供更多有机外观(或使渐变更平滑)的常见造型技巧是添加噪点,如下右图所示:

清楚的 添加噪音

在 iOS 界面中应用噪声的一个很好的例子可以在这里看到:http ://dribbble.com/system/users/1164/screenshots/173316/tp_chatview.png?1309741355

我的问题:是否有一种运行时方法可以在 iOS 中为图像添加噪点(即不使用预先生成的噪点图块)?

0 投票
1 回答
1493 浏览

java - Perlin Noise 函数为不同的输入返回相同的结果

我正在使用 perlin 噪声函数为我正在制作的游戏生成数据,但由于某种原因,它不断为不同的输入返回完全相同的结果。我花了大约 4 个小时试图在我的 FBM 函数上调试它,但无法弄清楚,所以我尝试了 Ken Perlin 改进的噪声函数,同样的事情发生了。

有人知道为什么是这样吗?有什么好的方法来解决它?我唯一能做的就是在 x 和 y 坐标上添加一个像 0.6473 这样的十进制值,这有帮助,但也引入了其他问题,例如在数组中重复的值。

这是一些测试代码。我正在尝试创建两个填充有噪声值的不同 2D 数组。x 和 y 输入是我游戏中的坐标。在它们后面带有 ' * * ' 的行上,如果我不增加这些值,两个数组都将被全零填充。在示例中,坐标 (0.0, -768.0) 和 (-1024.0, -768.0) 返回完全相同的噪声值。在我的游戏中,9 个不同的坐标返回相同的值。

我用于此测试的 Perlin Noise 函数在这里

0 投票
1 回答
791 浏览

image-processing - 应用于图像的高斯噪声(模拟传感器噪声)

我正在对图像应用一些高斯噪声。我认为这种类型的噪音最类似于人们可以从垃圾相机中获得的传感器噪音(?)。

我的问题是:对于 3 通道图像,应用于每个像素的所有值的噪声值是否相同,即

这有效地改变了像素的整体亮度。

或者,是应用于像素中每个通道的单独噪声值,即

或者,是为每个像素选择一个随机通道并应用噪声,即

这些方法中的哪一种最准确地模拟了我所追求的噪声类型(即传感器噪声)。我还认为大多数相机没有为每个像素设置单独的通道传感器,并从周围像素中插入颜色值,所以如果也是这种情况,它会影响答案吗?

0 投票
1 回答
1049 浏览

objective-c - 可可:两点之间的“随机”线?

在我的 Cocoa 爱好项目(在 OSX 上)中,我有一个确定了一些观点的观点。像这样的东西:

我想在这两点之间创建一条蜿蜒的线(永远不会交叉)。当然,要点可能会有所不同。我很熟悉,NSBezierPath但我不是图形高手。

对此有两种变体。给定NSBezierPath *p ...和设置[p moveToPoint:pt1]

  1. [p lineToPoint:ptx]在我创建锯齿状曲折线的地方使用
  2. [p curveToPoint:ptx controlPoint1:cpt1 controlPoint2:cpt2]与平滑的曲折线一起使用。

第二种情况似乎更困难,因为还必须计算合理的控制点。

最后,我希望能够调整线条蜿蜒的量。如果我将一个变量设置为 1,那么和int numOfIntermediatePoints之间会有一条平滑曲线。如果我设置为 10,则线路中的移动会更多。我不希望最后的中间点离终点很远(在行尾留下很大的变化)。pt1pt2numberOfIntermediatePoints

我已经研究过使用 Perlin 噪声,但似乎很难将线引导到终点。似乎计算一个NSPoint项目数组(可能还有一个控制点数组,对于情况二)然后循环它们以创建线是有意义的。

最好的方法是什么?


更新

按照 Tommy 的建议,我将Raymond Hill 的 Javascript-Voronoi库移植到了 Obj-C。你可以在这里找到它:https ://github.com/ccheaton/objcvoronoi


另一个更新

还有一个更新——我使用了 Dijkstra 的算法,发现它对于我想要实现的目标来说太过分了。我最终实现了它的简化变体,允许我为随机线指定引导节点。在这张图中,线的起点在左中,线的终点在右中,在 (xMax * 0.33, 0) 和 (xMax * 0.66, yMax) 处有引导点。

寻路示例


最终更新

为了让它稍微不那么锯齿,我添加了一个可选的松弛算法。现在性能不是很好,但这对我的使用无关紧要。

应用于小区站点的松弛算法

0 投票
2 回答
1430 浏览

random - 为什么 Perlin 噪声算法使用查找表来查找随机数

我一直在研究我希望构建的库的噪声算法,并从 Perlin 噪声开始(更准确地说,Simplex 噪声,我想使用任意维度,或者至少多达 6 个)。阅读Simplex noise 揭开神秘面纱,有所帮助,但在最后查看实现时,我看到了一个名为perm.

在代码示例中,它似乎用于生成一组渐变的索引,但该方法似乎很奇怪。我假设该表只是为了提供 1) 确定性和 2) 速度提升。

我的问题是,perm查找表是否有任何辅助意义或目的,还是出于上述原因?或者另一种方式,除了性能之外,是否存在不使用伪随机数生成器的特定原因?