Java 一维阵列的高斯滤波器

Java 一维阵列的高斯滤波器,java,android,gaussian,gaussianblur,Java,Android,Gaussian,Gaussianblur,我想在一维阵列上应用一维高斯滤波器。对于Python,有许多用于此的库,但我没有找到任何适用于android的库。所以我想在没有图书馆的情况下做这件事。最好的方法是什么?哪一个公式是正确的?我只找到了二维空间的公式,你看到了吗?它是一个JavaScript实现,但应该适用于Java 一维模糊的计算速度甚至更快。例如。我们要计算水平模糊。我们计算bh[i,j],bh[i,j+1],bh[i,j+2],。。。。但是相邻值bh[i,j]和bh[i,j+1]几乎相同。唯一的区别在于最左边的一个值和最右边

我想在一维阵列上应用一维高斯滤波器。对于Python,有许多用于此的库,但我没有找到任何适用于android的库。所以我想在没有图书馆的情况下做这件事。最好的方法是什么?哪一个公式是正确的?我只找到了二维空间的公式,你看到了吗?它是一个JavaScript实现,但应该适用于Java

一维模糊的计算速度甚至更快。例如。我们要计算水平模糊。我们计算bh[i,j],bh[i,j+1],bh[i,j+2],。。。。但是相邻值bh[i,j]和bh[i,j+1]几乎相同。唯一的区别在于最左边的一个值和最右边的一个值。所以bh[i,j+1]=bh[i,j]+f[i,j+r+1]−f[i,j−r]

在我们的新算法中,我们将通过创建累加器来计算一维模糊。首先,我们将最左边单元格的值放入其中。然后,我们将通过在恒定时间内编辑前一个值来计算下一个值。该1D模糊的复杂度为O(n)(独立于r)。但是它执行两次以获得框模糊,执行三次以获得高斯模糊。所以高斯模糊的复杂度是6*O(n)

函数gaussBlur_4(scl、tcl、w、h、r){ var bxs=boxesForGauss(r,3); boxBlur_4(scl,tcl,w,h,(bxs[0]-1)/2); boxBlur_4(tcl,scl,w,h,(bxs[1]-1)/2); boxBlur_4(scl,tcl,w,h,(bxs[2]-1)/2); } 功能盒Blur_4(scl、tcl、w、h、r){ 对于(var i=0;i您看到了吗?它是一个JavaScript实现,但应该适用于Java

一维模糊可以计算得更快。例如,我们想要计算水平模糊。我们计算bh[i,j],bh[i,j+1],bh[i,j+2],……但是相邻的值bh[i,j]和bh[i,j+1]几乎相同。唯一的区别是最左边的一个值和最右边的一个值。因此bh[i,j+1]=bh[i,j]+f[i,j+r+1]−f[i,j−r]

在我们的新算法中,我们将通过创建累加器来计算一维模糊。首先,我们将最左侧单元格的值放入其中。然后,我们将通过在恒定时间内编辑前一个值来计算下一个值。此一维模糊的复杂度为O(n)(与r无关).但是它执行两次以获得框模糊,而执行三次以获得高斯模糊。因此,此高斯模糊的复杂度为6*O(n)

函数gaussBlur_4(scl、tcl、w、h、r){ var bxs=boxesForGauss(r,3); boxBlur_4(scl,tcl,w,h,(bxs[0]-1)/2); boxBlur_4(tcl,scl,w,h,(bxs[1]-1)/2); boxBlur_4(scl,tcl,w,h,(bxs[2]-1)/2); } 功能盒Blur_4(scl、tcl、w、h、r){
对于(var i=0;i在Android中使用OpenCV如何。有专门针对这个主题的书籍和文章


在Android中使用OpenCV怎么样。有专门针对这个主题的书籍和文章