草庐IT

均值滤波

全部标签

c++ - 使用 accumulate 计算数组 double[] 平均值的函数

想必是最常见的功能吧,大家在某处都有一段代码,但我其实在SO以及其他C++网站上找了不下1.5小时,都没有找到解决办法。我想使用函数计算双数组[]的平均值。我想将数组作为引用传递给函数。有数百万个示例在main()循环中计算平均值,但我正在寻找的是一个函数,我可以将其放入外部文件并在以后随时使用它。到目前为止,这是我的最新版本,是什么导致了编译错误:doublemean_array(doublearray[]){intcount=sizeof(array)/sizeof(array[0]);doublesum=accumulate(array,array+count,0);return

c++ - 带加速度的卡尔曼滤波器

我正在尝试使用速度-加速度模型实现基于卡尔曼滤波器的鼠标跟踪(首先作为测试)。我想尝试这个简单的模型,我的状态转移方程是:X(k)=[x(k),y(k)]'(Position)V(k)=[vx(k),vy(k)]'(Velocity)X(k)=X(k-1)+dt*V(k-1)+0.5*dt*dt*a(k-1)V(k)=V(k-1)+t*a(k-1)a(k)=a(k-1)使用它我基本上写下了以下代码:#include#include#include#include#include#includeusingnamespacecv;usingnamespacestd;structmouse_

c++ - C++ 中的带通巴特沃斯滤波器实现

我正在使用openCV和C++实现图像分析算法,但我发现openCV没有正式的巴特沃斯带通滤波器的任何功能。在我的项目中,我必须将一个时间序列的像素传递给Butterworth5阶过滤器,该函数将返回过滤后的时间序列像素。Butterworth(pixelseries,order,frequency),如果您有任何想法可以帮助我了解如何开始,请告诉我。谢谢编辑:在获得帮助后,我终于想出了以下代码。它可以计算分子系数和分母系数,但问题是有些数字与matlab结果不一样。这是我的代码:#include#include#include#includeusingnamespacestd;#de

java - 两个数的安全平均值的解释

每当我需要为像二分查找这样的算法求两个数的平均值时,我总是这样做:intmid=low+((high-low)/2);我最近在thispost中看到了另一种方法,但我不明白。它说你可以用Java做到这一点:intmid=(low+high)>>>1;或者在C++中是这样的:intmid=((unsignedint)low+(unsignedint)high))>>1;C++版本本质上使两个操作数都无符号,因此进行移位会导致算术移位而不是有符号移位。我明白这两段代码在做什么,但这如何解决溢出问题?我认为整个问题是中间值high+low可能溢出?编辑:哦,呃。所有的答案都没有完全回答我的问

c++ - OpenCV 卡尔曼滤波器

我有三个陀螺仪值,俯仰、横滚和偏航。我想添加卡尔曼滤波器以获得更准确的值。我找到了opencv库,它实现了卡尔曼滤波器,但我不明白它是如何工作的。你能给我任何可以帮助我的帮助吗?我在互联网上没有找到任何相关主题。我试着让它在一个轴上工作。constfloatA[]={1,1,0,1};CvKalman*kalman;CvMat*state=NULL;CvMat*measurement;voidkalman_filter(floatFoE_x,floatprev_x){constCvMat*prediction=cvKalmanPredict(kalman,0);printf("KALM

c++ - 如何生成具有指数分布(均值)的随机数?

我正在尝试生成均值为1的指数分布随机数。我知道如何获取具有均值和标准差的正态分布随机数。我们可以通过normal(mean,standard_deviation)得到它,但是我不知道如何得到指数分布的随机数。谁能帮我解决这个问题? 最佳答案 在C++11中,标准实际上保证了RNG遵循STL中可用的指数分布的要求,object-type有一个非常具有描述性的名称。指数分布随机生成器中的均值由公式E[X]=1/lambda1计算。std::exponential_distribution有一个以lambda作为参数的构造函数,因此我们可

c++ - 如何计算均值(平均)robuSTLy?

如果我们天真地计算均值:std::vectorvalues;doublesum=std::accumulate(begin(values),end(values),0.0);doublemean=sum/values.size();和values.size()很大,我们可能会得到不准确的结果,因为float在较高范围内分辨率较低。或者更糟,如果我理解正确,我们可以获得无限的结果。当我们有一个偶数的值时,我们可以计算前半部分的平均值,然后计算后半部分的平均值,然后找到这两个平均值的平均值。这似乎不是一个新问题,但我很难找到资源。我认为有更复杂的技术在中权衡稳健性计算复杂度实现难度我想知道

MongoDB 聚合 - 文档数组中特定值的平均值

我目前正在处理具有以下结构的数据库:{"_id":ObjectId("1abc2"),"startdatetime":ISODate("2016-09-11T18:00:37Z"),"diveValues":[{"temp":15.269,"depth":0.0,},{"temp":14.779257384,"depth":1.0,},{"temp":14.3940253165,"depth":2.0,},{"temp":13.9225795455,"depth":3.0,},{"temp":13.8214431818,"depth":4.0,},{"temp":13.68995535

r - 如何使用 RMongo 计算特定列的平均值?

此代码显示了我如何在Pymongo中执行此操作,但如果我想在RMongo中执行此操作怎么办?frompymongoimportMongoClientconnection=MongoClient()db=connection.mydbcollection=db.transactionspipe=[{'$group':{'_id':'TRANS_AMNT_AVG','average':{'$avg':'$TRANS_AMOUNT'}}}]result=collection.aggregate(pipeline=pipe)print(list(result))connection.close

mysql - MySQL 中的行平均值 - 如何从计数中排除 NULL 行

我有一个简单的表(测试),我需要在其中执行一些平均值(我想获得行平均值和“总”列平均值)。idvar1var2var317NULL3210NULL6我注意到MySQLAVG()函数从计数中排除了NULL值(它们不计为0),这正是我想要的。以类似的方式,我想要这样的结果:var1var2var3total8.5NULL4.56.5(i.e.theoverallaverageis6.5*not*4.3333)但是我的查询是这样的:SELECTAVG(var1)ASvar1,AVG(var2)ASvar2,AVG(var3)ASvar3,(AVG(var1)+AVG(var2)+AVG(va