标签: smoothing

平滑的GPS数据

我正在使用GPS数据,每秒获取值并在地图上显示当前位置.问题是有时(特别是当精度很低时)值变化很大,使当前位置在地图中的远点之间"跳跃".

我想知道一些简单的方法来避免这种情况.作为第一个想法,我考虑过准确地丢弃超过一定阈值的值,但我想还有其他一些更好的方法.程序执行此操作的常用方法是什么?

gps smoothing

141
推荐指数
6
解决办法
10万
查看次数

平滑手绘曲线

我有一个允许用户绘制曲线的程序.但是这些曲线看起来并不好看 - 它们看起来摇摇晃晃,手绘.

所以我想要一种能够自动平滑它们的算法.我知道平滑过程中存在固有的模糊性,因此每次都不会是完美的,但是这些算法似乎确实存在于几个绘图包中并且它们工作得很好.

是否有类似这样的代码示例?C#会很完美,但我可以翻译其他语言.

c# bezier spline smoothing

25
推荐指数
2
解决办法
2万
查看次数

平滑传感器的数据

我有一个测量v(x,y,z)数据的3D传感器.我只使用x和y数据.仅平滑x和y就足够了.

如果我使用日志显示数据,它会显示如下:(时间)0.1 ...(数据日志)x = 1.1234566667(时间)0.2 ...(数据日志)x = 1.1245655666(时间)0.3. ..(数据日志)x = 1.2344445555

实际上数据更准确,但我想在1.1234值和1.2344值之间平滑,因为对我来说它是相同的,我可以使用整数,只显示"x = 1"但我也需要小数,然后,我需要在这里展示一种"平滑"的价值.

任何人有任何想法?我正在使用c#进行编程,但并非所有函数都正常工作,所以我需要构建自己的函数.

algorithm sensor smoothing

23
推荐指数
3
解决办法
4万
查看次数

R - locfit()与locpoly()的局部线性回归

在给出明显等效的输入时,我试图理解这两个平滑函数的不同行为.我的理解是,locpoly只需要一个固定的带宽参数,同时locfit也可以在其平滑参数中包含一个变化的部分(最近邻分数," nn").我认为将这个变化部分设置为零locfit应该使" h"组件像所用的固定带宽一样locpoly,但显然不是这种情况.

一个工作的例子:

library(KernSmooth)
library(locfit)
set.seed(314)

n <- 100
x <- runif(n, 0, 1)
eps <- rnorm(n, 0, 1)
y <- sin(2 * pi * x) + eps

plot(x, y)
lines(locpoly(x, y, bandwidth=0.05, degree=1), col=3)
lines(locfit(y ~ lp(x, nn=0, h=0.05, deg=1)), col=4)
Run Code Online (Sandbox Code Playgroud)

产生这个情节:

平滑的情节

locpoly给出平滑的绿线,并locfit给出摇摆的蓝线.显然,这里locfit具有较小的"有效"带宽,即使假定的带宽参数对于每个具有相同的值.

这些功能有何不同?

regression r smoothing

22
推荐指数
1
解决办法
6301
查看次数

Delphi中的字体平滑

我有理由在Delphi表格上需要一个带有大字体的标签,并注意到它的曲线仍然略带锯齿状.我在MSWord中将它与相同的大小和字体进行了比较,这更加平滑.经过研究,我发现代码可以让我平滑我的字体,但它很乱,我想知道是否有更好的方法?看着VCL的来源,TFont似乎坚持NONANTIALIASED_QUALITY,这是相当令人沮丧的......

谢谢Bri

procedure TForm1.SetFontSmoothing(AFont: TFont);
var
  tagLOGFONT: TLogFont;
begin
  GetObject(
    AFont.Handle,
    SizeOf(TLogFont),
    @tagLOGFONT);
  tagLOGFONT.lfQuality  := ANTIALIASED_QUALITY;
  AFont.Handle := CreateFontIndirect(tagLOGFONT);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  I : integer;
begin
  For I :=0 to ComponentCount-1 do
    If Components[I] is TLabel then
      SetFontSmoothing( TLabel( Components[I] ).Font );
end;
Run Code Online (Sandbox Code Playgroud)

delphi fonts truetype smoothing

20
推荐指数
3
解决办法
7534
查看次数

如何在MATLAB中平滑一个图?

我在图表上绘制了大约9000个点:

[ 全分辨率 ]

替代文字

实际上,情节并不像我希望的那样顺利.有什么方法可以将图表平滑到所需的程度吗?

或者某种形式的阈值处理,以便我可以选择性地平滑过于颠簸的部分?

我不确定但是可以快速傅里叶变换帮助吗?

matlab plot curvesmoothing smoothing

20
推荐指数
3
解决办法
8万
查看次数

为什么DirectX/DirectWrite/Direct2D文本渲染不能像GDI一样锐利?

我已经知道,与GDI相比,子像素定位会导致DirectWrite文本呈现模糊.

但是,我的问题更为基础:为什么 DirectWrite(和相关方法)不能像GDI一样呈现文本?

换句话说:
什么阻止 DirectWrite能够将文本捕捉到最近的像素,就像GDI一样?

例如,它是硬件问题吗?驱动程序架构问题?它根本没有实现吗?或者是其他东西?


较小的样本:

较大的样品:

Direct2D,别名:

Direct2D,默认:

Direct2D("经典GDI"):

Direct2D("天然GDI"):

实际 GDI:

directx winapi gdi text-rendering smoothing

19
推荐指数
1
解决办法
5938
查看次数

如何使用SciPy/Numpy过滤/平滑?

我试图过滤/平滑从采样频率为50 kHz的压力传感器获得的信号.示例信号如下所示:

在此输入图像描述

我想在MATLAB中获得由黄土获得的平滑信号(我没有绘制相同的数据,值不同).

在此输入图像描述

我使用matplotlib的psd()函数计算了功率谱密度,功率谱密度也在下面提供:

在此输入图像描述

我尝试使用以下代码并获得过滤后的信号:

import csv
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
from scipy.signal import butter, lfilter, freqz

def butter_lowpass(cutoff, fs, order=5):
    nyq = 0.5 * fs
    normal_cutoff = cutoff / nyq
    b, a = butter(order, normal_cutoff, btype='low', analog=False)
    return b, a

def butter_lowpass_filter(data, cutoff, fs, order=5):
    b, a = butter_lowpass(cutoff, fs, order=order)
    y = lfilter(b, a, data)
    return y

data = np.loadtxt('data.dat', skiprows=2, delimiter=',', unpack=True).transpose()
time = data[:,0]
pressure = data[:,1]
cutoff …
Run Code Online (Sandbox Code Playgroud)

python filtering numpy scipy smoothing

18
推荐指数
1
解决办法
3万
查看次数

是否有一个Python等效于R中的smooth.spline函数

R中的smooth.spline函数允许在粗糙度(由二阶导数的积分平方定义)和拟合点(通过对残差的平方求和所定义)之间进行权衡.这种权衡是通过spar或df参数完成的.在一个极端,你获得最小方块线,另一个你得到一个非常摇摆的曲线,它与所有数据点相交(或者如果你有重复的x值,具有不同的y值,则为平均值)

我在Python中查看了scipy.interpolate.UnivariateSpline和其他样条变量,但是,他们似乎只是通过增加结的数量来进行权衡,并为允许的SS残差设置一个阈值(称为s).相比之下,R中的smooth.spline允许在所有x值处具有节点,而不必具有击中所有点的摇摆曲线 - 惩罚来自二阶导数.

Python是否具有以这种方式运行的样条拟合机制?允许所有结,但惩罚二阶导数?

python r splines smoothing

17
推荐指数
1
解决办法
1973
查看次数

R中的图像平滑

如何在R中平滑此图片,以便只保留两个峰值?

如果这是1d数据,我会做一个运行平均值或适合它的回归函数.但我没有找到关于在二维矩阵上应用这些方法的非常具体的信息.例如,我试图filter()stats包中使用.

我也考虑过克里金法,但这更多是关于插值的,是吗?

频谱

filtering r image-processing smoothing

16
推荐指数
3
解决办法
1万
查看次数