问题标签 [convolution]
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.
vector - 在clojure中,将向量与内核卷积的有效方法是什么?
我想出了这个:
这不是最优雅的代码,但它工作正常。我其实想用它来平滑一些非常尖的!数据。
欢迎任何使这个更漂亮、更有效或更准确的建议(我个人不关心尾巴不准确,因为在我的情况下我从不使用它)。
c - ANSI C代码中的一维线性卷积?
与其重新发明轮子,我想知道是否有人可以向我推荐 ANSI C 中的一维线性卷积代码片段?我在谷歌和堆栈溢出中进行了搜索,但在 CI 中找不到任何可以使用的东西。
例如,对于数组 A、B 和 C,均为双精度,其中 A 和 B 是输入,C 是输出,长度len_A
分别为len_B
、 和len_C = len_A + len_B - 1
。
我的数组大小很小,因此不需要通过 FFT 实现快速卷积的任何速度提高。寻找简单的计算。
opencv - OpenCV GPU 卷积函数和缺失的边框
我对使用 GPU 加速的 OpenCV 中的卷积函数有疑问。使用 GPU 的卷积速度大约快 3.5
运行时:
但是缺少图像边框(在cresult中)
否则结果非常好(内核大小为60x60)
谢谢
actionscript-3 - 是否可以结合卷积矩阵一次应用多个变换?
从理论上讲,应该可以通过加法或乘法来组合变换或颜色矩阵(当涉及到这样的数学时,我很蹩脚)。是否可以?
image-processing - 二维滤波算法
有没有办法更快地做到这一点?我想将 O(N^2) 复杂度降低到更低。注意:滤波器内核围绕 N/2 旋转对称。
python - 来自黎曼的人工制品在 scipy.signal.convolve 中求和
简短摘要:如何快速计算两个数组的有限卷积?
问题描述
我试图获得由定义的两个函数 f(x)、g(x) 的有限卷积
为了实现这一点,我对函数进行了离散样本并将它们转换为长度数组steps
:
然后我尝试使用该scipy.signal.convolve
函数计算卷积。此函数给出的结果与此处conv
建议的算法相同。但是,结果与分析解决方案有很大不同。修改算法以使用梯形规则可以得到所需的结果。conv
为了说明这一点,我让
结果是:
这里Riemann
表示一个简单的黎曼和,trapezoidal
是使用梯形法则的黎曼算法的修改版本,scipy.signal.convolve
是 scipy 函数,analytical
是解析卷积。
现在让g(x) = x^2 * exp(-x)
结果变为:
这里的“比率”是从 scipy 获得的值与分析值的比率。上面说明了这个问题不能通过重新归一化积分来解决。
问题
是否可以使用 scipy 的速度但保留梯形规则的更好结果,还是我必须编写 C 扩展才能达到预期的结果?
一个例子
只需复制并粘贴下面的代码即可查看我遇到的问题。steps
通过增加变量可以使这两个结果更接近一致。我相信这个问题是由于右手黎曼和的伪影造成的,因为积分在增加时被高估,而在它减少时再次接近解析解。
编辑:我现在已经将原始算法2作为比较,它给出了与函数相同的结果scipy.signal.convolve
。
感谢您的时间!
ios - Accelerate 的 vImage 与 vDSP
我正在尝试使用 iOS 上的 Accelerate 框架来绕过 iOS 上的 Core Image 不支持自定义过滤器/内核的事实。我正在开发一个边缘检测滤波器,使用两个卷积和一个Sobel 内核,但是从一个简单的高斯模糊开始来掌握它的窍门。我知道 vImage 适合作为矩阵进行图像处理,而 vDSP 专注于使用傅里叶变换处理数字信号。但是虽然我开始使用 vImage 函数(vImageConvolve_XXXX 等),但我听到很多人在讨论使用 vDSP 的函数(vDSP_conv、vDSP_imgfir 等)来做卷积之类的事情。所以这让我想到了手头的问题:我什么时候应该使用一个而不是另一个?它们在卷积操作方面有什么区别?我到处寻找,但找不到明确的答案。有人可以阐明它,或者指出我正确的方向吗?
谢谢!
matlab - 一种以类似于“conv2”的方式获取“normxcorr2”输出的优雅方法 - (删除不需要的边缘)
Matlab 中是否有一种优雅normxcorr2
的方法可以将输出裁剪为图像的大小,或者仅裁剪到在计算中不使用零填充边缘的矩阵部分?
要理解我的意思,请考虑conv2
命令。有一个可选参数调用shape
,可以设置为same
或valid
。
例如:
答案=
答案=
答案=
目前我编写了自己的函数,它执行以下操作:
你有更好的主意吗?成功答案的主要标准将是所提出的解决方案的优雅。
编辑(1)首先,感谢您的所有回答。他们都很好,我赞成。我还没有决定哪个是最好的。顺便说一句,我最近在考虑模板与图像相比较大的情况。image
在这种情况下,通过在运行之前裁剪参数来加速计算是有意义的normxcorr2
。
matlab - 为什么使用 DFT 的相关性会给出不直观的结果?
我试图通过 Matlab 中的 DFT(数字傅里叶变换)使用相关性来比较 2 个信号的相似程度,但相关函数给出的结果并不是真正可预测的。例如,如果我比较这 2 对信号:
- 相关性 1 和 2
- 相关 3 和 4(自相关)
我预计“corr 3 和 4”情况下的相关峰值高于“corr 1 和 2”情况下的相关峰值。
我也试图让信号“平均为零”,但这没有帮助。
这是预期的结果还是我错过了一些预处理等?