问题标签 [gaussianblur]

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

python - 如何模糊点的 3D 数组,同时保持它们的原始值?(Python)

我有一个稀疏的 3D 值数组。我试图通过对数组应用高斯滤波器将每个“点”变成一个模糊的“球体”。

我希望点 (x,y,z) 的原始值保持不变。我只想在这一点周围创建衰减值......但是应用高斯滤波器也会改变原始 (x,y,z) 值。

我目前正在这样做:

dataCube = scipy.ndimage.filters.gaussian_filter(dataCube, 3, truncate=8)

有没有办法让我正常化这个,或者做一些事情让我的原始值仍然在这个新的dataCube中?如果这不是最好的方法,我不一定要使用高斯滤波器。

0 投票
1 回答
93 浏览

python - 如何将 1D 阵列变成对称的 3D 阵列?

我有一个对称的一维 numpy 数组,例如,如下所示:

我怎么能把它变成一个 3D 数组(有点类似于高斯核),中心值为 2?

作为我的意思的一个例子(尽管数学可能不正确),在 2D 中这将是这样的(尽管我需要它是 3D):

0 投票
1 回答
1736 浏览

c# - 高斯滤波器实现

我正准备在 C# 中实现一个高斯滤波器,并且在准备中我正在阅读这方面的文献。但是我有不同的消息来源。

一本书(日文:Practical Image Processing Introduction by Uchimura)指定计算模板的方程为

我认为这是正确的,尽管作者将 size 和 sigma 链接为SIZE = 3*sigma.

最后,一本优秀的书(Nixon 和 Aguado 的 Feature Extraction & Image Processing for Computer Vision,第 106 页)给出了正确的等式,但在代码中实现时给出了不同的实现。

其中SUM是指数的所有值的总和。下面是他们提供的伪代码 - 我认为它接近 MATLAB。

尽管正确的方程和代码实现在某种程度上给出了相似的结果,但我想知道为什么在同一本书中实现和方程是不同的。

我的问题是,你们中的任何人都使用过高斯滤波实现吗?实现的方程式是否正确?知道为什么这本书给出了一个更简单的实现吗?

0 投票
1 回答
1509 浏览

c# - 在(高斯)滤波后对图像进行归一化

我按照 Nixon Aguado 的算法实现了一个高斯滤波器。该算法(在找到此处描述的模板gaussian template之后)如下。

我相信伪代码是 MATLAB 风格的。

无论如何,让我担心的是最后一部分“正常化”。我已经尝试过我的算法(用 C# 编写),一些像素的值是 255.00000003(显然大于 255)。我应该将结果“标准化”以将其扩大到 0-255 范围吗?那不是要修改图像(除了高斯)吗?我只是不希望这个操作涉及高斯滤波器,仅此而已。


编辑:我已经消除了“规范化”,它似乎运作良好,所以我不知道为什么这本书的作者推荐它。尽管如此,我还是担心如果由于某种原因出现 > 255 的某个值并且无法绘制,我的程序会崩溃。

0 投票
1 回答
119 浏览

opencv - 试图创建我自己的图像过滤器代码?

只是为了使我的图像处理基础更清楚,我正在尝试编写一个代码来制作一个图像过滤器,该过滤器采用内核并将其卷积到整个图像。

简而言之,我正在尝试复制 opencv 的 filter2d 函数,但是它给了我一些意想不到的结果。

我的代码:

通过这段代码我得到这

有人可以告诉我我做错了什么吗?

0 投票
1 回答
244 浏览

vb.net - 高斯模糊返回值大于 255

我正在尝试在不使用库的情况下制作高斯模糊。当我将 σ 更改为 5 时,它会导致错误,因为该值大于 255。我以此作为参考。我知道方程式是错误的,但我只看到参考值。我使用来自 wiki 的方程式。

当我使用相同的 σ 和 5.5 的参考值时,我得到的结果与该链接上的值相同。但是当我尝试将其更改为 5 时,值超过了 255。也许不仅仅是 5。我一遍又一遍地重新阅读我的代码。或者我搞砸了公式?它应该低于255吧?这是我的公式代码

这是主要功能

更新: 我刚刚意识到这一点,当我使用灰度图像时,它可以工作。但是当我在内核 5x5 上使用全彩色图像时,它会将图像变成灰度。我意识到只有红色通道超过 255。

0 投票
1 回答
3760 浏览

python - 线性分离高斯滤波器并用 Numpy 计算

我有一个2d numpy array包含从到的greyscale像素值。我想做的是从头开始创建一个. 我已经编写了一个生成高斯函数的函数:0255gaussian filter normalizedkernel

效果很好:

因此,我创建了一个基本convolution函数来将其kernel应用于每个函数pixel并产生gaussian模糊:

它工作正常并且模糊了图像,但是,由于这段代码最终将在树莓派上运行,我需要它高效并且速度更快。因此,感谢我昨天提出的关于如何加速边缘检测器的问题的答案Sobel,我尝试将他给出的相同逻辑应用于gaussian过滤器。但是,由于function将接受 的variable大小参数kernel,因此与设置的Sobel内核大小(即3x3.

如果我正确理解了解释,我需要首先将内核分成xy组件,这可以通过使用原始的顶部row和左侧来完成(显然它们是相同的,但我决定将它们分开,因为我有内核已经计算)。下面是分离的矩阵:columnkernel2d

分离式过滤器

从这些rowcolumn向量中,我需要遍历每个值并将'window'数组的值乘以它的元素。在每个之后,将减小的窗口大小沿数组向右移动。为了更清楚地显示我认为我需要做的事情,这些是'windows'我正在谈论的 3 个不同kernel大小的小图像3x3

因此,对于每个'window',您乘以index内核中该窗口的 并将其添加到总数中。

然后,获取已应用内核x组件的img 并对组件执行相同操作。gaussiany

这些是我认为我可以gaussian比使用上述方法更快地计算模糊的步骤nested for-loops,这是我编写的尝试执行此操作的代码:

我的问题是这个函数产生了正确的“模糊效果”,但由于某种原因0,输出值都介于两者之间。幸运的是,由于某些其他原因,仍然可以正常显示输出,因此我可以检查它是否正确模糊了图像。3floatsmatplotlib

问题很简单:为什么像素值输出在0和之间3

我已经调试了几个小时,但找不到原因。我很确定某处只有一点缩放细节,但我就是找不到。任何帮助将非常感激!

0 投票
1 回答
4441 浏览

c++ - 暂停时的快速高斯模糊

cocos2d-x中,我需要实现快速高斯模糊,它应该是这样的(我刚刚在 App Store 上发现了一些游戏已经完成了这种模糊,统一):

在此处输入图像描述

所以,当用户暂停游戏时, fadeIn - fadeOut模糊效果很好。

GPUImage 已经有我需要的快速模糊,但我找不到 cocos2d-x 的解决方案。

这是使用 GPUImage2 进行实时摄像头视图的结果- 在 iPod Touch 5G 上进行了测试,它在这款缓慢而旧的设备上运行速度很快。

即使在 iPod Touch 5G 等非常慢的设备上,GPUImage 中的模糊效果也非常快。
为 cocos2d-x 寻找超快速高斯模糊的解决方案。

0 投票
0 回答
160 浏览

ios - 有什么方法可以加速这个 UILabel 模糊代码?

这是代码,它真的很慢,就像渲染大约 25 个标签的秒数一样慢。

任何图像/UIGraphics 大师都知道为什么这么慢?

更新:这行代码是罪魁祸首。但是,还需要创建模糊效果。

0 投票
1 回答
1165 浏览

google-chrome - SVG feGaussianBlur 和 feColorMatrix 过滤器在 Chrome 中不起作用?

我正在尝试使用此代码http://bl.ocks.org/nbremer/0e98c72b043590769facc5e829ebf43f中的过滤器。在Win 7上的Firefox 56(64bits)中实现的效果很好,但是在Chrome 62(64bits)中就奇怪了。颜色要浅得多,效果看起来不像FF那样平滑。

我已经阅读了很多关于 Safari 无法正确显示这些过滤器的问题,但我找不到关于 Chrome 的任何信息。

请看下面的截图:

  • 火狐

在此处输入图像描述

  • 铬合金

在此处输入图像描述

知道是什么导致了差异以及如何在 Chrome 中修复它吗?