导航:首页 > 源码编译 > 滤波融合算法

滤波融合算法

发布时间:2022-06-26 18:22:42

① 陀螺仪和加速度的值通过卡尔曼滤波融合.求C程序

给你arino的卡尔曼滤波融合算法,我只是封装了算法.
另外你这么难的问题应该给点分才厚道啊!
H文件:
/*
* KalmanFilter.h
* Non-original
* Author:x2d
* Copyright (c) 2012 China
*
*/
#ifndef KalmanFilter_h
#define KalmanFilter_h
#include
class KalmanFilter
{
public:
KalmanFilter();
/*
卡尔曼融合计算
angle_m:加速度计测量并通过atan2(ax,ay)方法计算得到的角度(弧度值)
gyro_m:陀螺仪测量的角速度值(弧度值)
dt:采样时间(s)
outAngle:卡尔曼融合计算出的角度(弧度值)
outAngleDot:卡尔曼融合计算出的角速度(弧度值)
*/
void getValue(double angle_m,double gyro_m,double dt,double &outAngle,double &outAngleDot);
private:
double C_0,Q_angle,Q_gyro,R_angle;
double q_bias,angle_err,PCt_0,PCt_1,E,K_0,K_1,t_0,t_1;
double angle,angle_dot;
double P[2][2];
double Pdot[4];
};
CPP文件:
/*
* KalmanFilter.cpp
* Non-original
* Author:x2d
* Copyright (c) 2012 China
*
*/
#include "KalmanFilter.h"
KalmanFilter::KalmanFilter()
{
C_0 = 1.0f;
Q_angle = 0.001f;
Q_gyro = 0.003f;
R_angle = 0.5f;
q_bias = angle_err = PCt_0 = PCt_1 = E = K_0 = K_1 = t_0 = t_1 = 0.0f;
angle = angle_dot = 0.0f;
P[0][0] = 1.0f;
P[0][1] = 0.0f;
P[1][0] = 0.0f;
P[1][1] = 1.0f;
Pdot[0] = 0.0f;
Pdot[1] = 0.0f;
Pdot[2] = 0.0f;
Pdot[3] = 0.0f;
}
void KalmanFilter::getValue(double angle_m,double gyro_m,double dt,double &outAngle,double &outAngleDot)
{
/*
Serial.print("angle_m = ");
Serial.print(angle_m);
Serial.print(";");
Serial.print("gyro_m = ");
Serial.print(gyro_m);
Serial.print(";");
*/
angle+=(gyro_m-q_bias) * dt;
angle_err = angle_m - angle;
Pdot[0] = Q_angle - P[0][1] - P[1][0];
Pdot[1] = -P[1][1];
Pdot[2] = -P[1][1];
Pdot[3] = Q_gyro;
P[0][0] += Pdot[0] * dt;
P[0][1] += Pdot[1] * dt;
P[1][0] += Pdot[2] * dt;
P[1][1] += Pdot[3] * dt;
PCt_0 = C_0 * P[0][0];
PCt_1 = C_0 * P[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E;
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;
angle += K_0 * angle_err;
q_bias += K_1 * angle_err;
angle_dot = gyro_m-q_bias;
outAngle = angle;
outAngleDot = angle_dot;
/*
Serial.print("angle = ");
Serial.print(angle);
Serial.print(";");
Serial.print("angle_dot = ");
Serial.print(angle_dot);
Serial.print(";");
*/
}
#endif

② 什么是滤波算法

卡尔曼滤波器(Kalman Filter)是一个最优化自回归数据处理算法(optimal recursive data processing algorithm)。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。

最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。

现设线性时变系统的离散状态防城和观测方程为:

X(k) = F(k,k-1)·X(k-1)+T(k,k-1)·U(k-1)

Y(k) = H(k)·X(k)+N(k)

其中

X(k)和Y(k)分别是k时刻的状态矢量和观测矢量

F(k,k-1)为状态转移矩阵

U(k)为k时刻动态噪声

T(k,k-1)为系统控制矩阵

H(k)为k时刻观测矩阵

N(k)为k时刻观测噪声

则卡尔曼滤波的算法流程为:

预估计X(k)^= F(k,k-1)·X(k-1)

计算预估计协方差矩阵
C(k)^=F(k,k-1)×C(k)×F(k,k-1)'+T(k,k-1)×Q(k)×T(k,k-1)'
Q(k) = U(k)×U(k)'

计算卡尔曼增益矩阵
K(k) = C(k)^×H(k)'×[H(k)×C(k)^×H(k)'+R(k)]^(-1)
R(k) = N(k)×N(k)'

更新估计
X(k)~=X(k)^+K(k)×[Y(k)-H(k)×X(k)^]

计算更新后估计协防差矩阵
C(k)~ = [I-K(k)×H(k)]×C(k)^×[I-K(k)×H(k)]'+K(k)×R(k)×K(k)'

X(k+1) = X(k)~
C(k+1) = C(k)~

③ 求陀螺仪用的卡尔曼滤波算法资料 程序!!!!急急急!!!

给你arino的卡尔曼滤波融合算法,非原创,我只是封装了算法。

H文件:
/*
* KalmanFilter.h
* Non-original
* Author: x2d
* Copyright (c) 2012 China
*
*/

#ifndef KalmanFilter_h
#define KalmanFilter_h

#include <WProgram.h>

class KalmanFilter
{
public:
KalmanFilter();

/*
卡尔曼融合计算
angle_m: 加速度计测量并通过atan2(ax,ay)方法计算得到的角度(弧度值)
gyro_m:陀螺仪测量的角速度值(弧度值)
dt:采样时间(s)
outAngle:卡尔曼融合计算出的角度(弧度值)
outAngleDot:卡尔曼融合计算出的角速度(弧度值)
*/
void getValue(double angle_m, double gyro_m, double dt, double &outAngle, double &outAngleDot);

private:
double C_0, Q_angle, Q_gyro, R_angle;
double q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1;
double angle, angle_dot;
double P[2][2];
double Pdot[4];
};

CPP文件:
/*
* KalmanFilter.cpp
* Non-original
* Author: x2d
* Copyright (c) 2012 China
*
*/

#include "KalmanFilter.h"

KalmanFilter::KalmanFilter()
{
C_0 = 1.0f;
Q_angle = 0.001f;
Q_gyro = 0.003f;
R_angle = 0.5f;
q_bias = angle_err = PCt_0 = PCt_1 = E = K_0 = K_1 = t_0 = t_1 = 0.0f;
angle = angle_dot = 0.0f;
P[0][0] = 1.0f;
P[0][1] = 0.0f;
P[1][0] = 0.0f;
P[1][1] = 1.0f;
Pdot[0] = 0.0f;
Pdot[1] = 0.0f;
Pdot[2] = 0.0f;
Pdot[3] = 0.0f;
}

void KalmanFilter::getValue(double angle_m, double gyro_m, double dt, double &outAngle, double &outAngleDot)
{
/*
Serial.print("angle_m = ");
Serial.print(angle_m);
Serial.print(";");
Serial.print("gyro_m = ");
Serial.print(gyro_m);
Serial.print(";");
*/

angle+=(gyro_m-q_bias) * dt;
angle_err = angle_m - angle;
Pdot[0] = Q_angle - P[0][1] - P[1][0];
Pdot[1] = -P[1][1];
Pdot[2] = -P[1][1];
Pdot[3] = Q_gyro;
P[0][0] += Pdot[0] * dt;
P[0][1] += Pdot[1] * dt;
P[1][0] += Pdot[2] * dt;
P[1][1] += Pdot[3] * dt;
PCt_0 = C_0 * P[0][0];
PCt_1 = C_0 * P[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E;
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;
angle += K_0 * angle_err;
q_bias += K_1 * angle_err;
angle_dot = gyro_m-q_bias;

outAngle = angle;
outAngleDot = angle_dot;
/*
Serial.print("angle = ");
Serial.print(angle);
Serial.print(";");
Serial.print("angle_dot = ");
Serial.print(angle_dot);
Serial.print(";");
*/
}
#endif

④ 加权平均法图像融合算法原理是什么

加权平均法图像融合算法的原理就是:对原图像的像素值直接取相同的权值,然后进行加权平均得到融合图像的像素值,举例说比如要融合两幅图像A,B,那它们的融合后图像的像素值就是A*50%+B*50%,就这么简单

⑤ 谁能给我讲解一下卡尔曼滤波,我最近在用mpu6050,把陀螺仪和加速度的值通过卡尔曼滤波融合。求C程序!

给你arino的卡尔曼滤波融合算法,非原创,我只是封装了算法。
另外你这么难的问题应该给点分才厚道啊!

H文件:
/*
* KalmanFilter.h
* Non-original
* Author: x2d
* Copyright (c) 2012 China
*
*/

#ifndef KalmanFilter_h
#define KalmanFilter_h

#include <WProgram.h>

class KalmanFilter
{
public:
KalmanFilter();

/*
卡尔曼融合计算
angle_m: 加速度计测量并通过atan2(ax,ay)方法计算得到的角度(弧度值)
gyro_m:陀螺仪测量的角速度值(弧度值)
dt:采样时间(s)
outAngle:卡尔曼融合计算出的角度(弧度值)
outAngleDot:卡尔曼融合计算出的角速度(弧度值)
*/
void getValue(double angle_m, double gyro_m, double dt, double &outAngle, double &outAngleDot);

private:
double C_0, Q_angle, Q_gyro, R_angle;
double q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1;
double angle, angle_dot;
double P[2][2];
double Pdot[4];
};

CPP文件:
/*
* KalmanFilter.cpp
* Non-original
* Author: x2d
* Copyright (c) 2012 China
*
*/

#include "KalmanFilter.h"

KalmanFilter::KalmanFilter()
{
C_0 = 1.0f;
Q_angle = 0.001f;
Q_gyro = 0.003f;
R_angle = 0.5f;
q_bias = angle_err = PCt_0 = PCt_1 = E = K_0 = K_1 = t_0 = t_1 = 0.0f;
angle = angle_dot = 0.0f;
P[0][0] = 1.0f;
P[0][1] = 0.0f;
P[1][0] = 0.0f;
P[1][1] = 1.0f;
Pdot[0] = 0.0f;
Pdot[1] = 0.0f;
Pdot[2] = 0.0f;
Pdot[3] = 0.0f;
}

void KalmanFilter::getValue(double angle_m, double gyro_m, double dt, double &outAngle, double &outAngleDot)
{
/*
Serial.print("angle_m = ");
Serial.print(angle_m);
Serial.print(";");
Serial.print("gyro_m = ");
Serial.print(gyro_m);
Serial.print(";");
*/

angle+=(gyro_m-q_bias) * dt;
angle_err = angle_m - angle;
Pdot[0] = Q_angle - P[0][1] - P[1][0];
Pdot[1] = -P[1][1];
Pdot[2] = -P[1][1];
Pdot[3] = Q_gyro;
P[0][0] += Pdot[0] * dt;
P[0][1] += Pdot[1] * dt;
P[1][0] += Pdot[2] * dt;
P[1][1] += Pdot[3] * dt;
PCt_0 = C_0 * P[0][0];
PCt_1 = C_0 * P[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E;
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;
angle += K_0 * angle_err;
q_bias += K_1 * angle_err;
angle_dot = gyro_m-q_bias;

outAngle = angle;
outAngleDot = angle_dot;
/*
Serial.print("angle = ");
Serial.print(angle);
Serial.print(";");
Serial.print("angle_dot = ");
Serial.print(angle_dot);
Serial.print(";");
*/
}
#endif

⑥ 数据处理

4.3.1 数据源情况

4.3.1.1 卫星影像数据情况

本项目数据源是由国土资源部信息中心提供的 2005~2007 年 SPOT 5_2.5 m 分辨率影像数据。覆盖工作区的 SPOT 5 卫星影像数据共计 79 景(图 4-2),所接收影像均有 4% 以上的重叠区域;影像信息丰富,无明显噪声、斑点和坏线;云、雪覆盖量均小于 10%,且未覆盖城乡结合部等重点地区;东部平原地区大部分影像覆盖有程度不同的雾或霾,但整体地类信息能够区分;影像数据接收侧视角一般小于 15°,平原地区不超过 25°,山区不超过 20°,基本满足技术规范对影像接收的要求。

图 4-2 河南省 SPOT 5 影像数据分布示意图

图 4-3 影像接收时间分布

由于本次 SPOT 5 卫星影像接收时间跨度大,时相接收差异大,79 景影像多集中于春季和秋季(图 4-3),但部分影像由于接收时间不是河南地区最佳季节,存在着这样或那样的问题,见表 4-1:

表 4-1 影像数据接收信息及数据质量评述表

续表

4.3.1.2 DEM 数据情况

覆盖河南全省的 1∶5 万数字高程模型(DEM)共计 464 幅。

首先,对 DEM 是否齐全及 DEM 的现势性等进行了全面检查;其次,对相邻分幅 DEM 是否有重叠区域以及重叠区域的高程是否一致、接边后是否出现裂隙现象等信息进行了检查;第三,项目组对每幅 DEM 是否有完整的元数据以及对数据的地理基础、精度、格网尺寸等信息是否齐全等进行了全面检查。

由于 1∶5 万 DEM 原始数据是 GRID 标准格式,数学基础为 1980 年西安坐标系,1985 年国家高程基准,6°分带。鉴于以上数据格式和项目实施方案要求,项目组对涉及工作区的 464 幅DEM,分别按照 19°带和 20°带进行镶嵌及坐标系转换,之后再进行拼接、换带及投影转换处理,得到覆盖河南全省的、满足对项目区影像进行正射校正需求的、中央经线为 114°、1954 北京坐标系、1985 年国家高程基准的河南省 1∶5 万 DE(M图 4-4)。

图 4-4 河南省 1∶5 万 DEM

经过对拼接好的 DEM 进行全面检查,本项目使用的 DEM 数据覆盖河南全省,不存在缺失、黑边等现象,基本满足本项目影像数据正射校正的需要。

4.3.2 数据配准

目前影像配准技术大致分为两大类,基于灰度的方法和基于特征的方法。大多数基于灰度的方法采用互相关技术或傅立叶变换技术来实现。影像配准采用的是 ERDAS 9.1 中的自动配准模块(AutoSync)。在自动检测结束后,将其在参考图像上寻找出来同样需要很大的工作量。在不能完全自动实现匹配的情况下,如果能够大致计算出需要寻找和精确调整标注的区域,同样能够减少很大工作量。通过使用多项式粗略计算出两张影像的对应关系就可以解决这一问题。

根据 ERDAS 系统要求,我们最少需要 3 个点就可以在两张卫星影像间建立一个粗略的对应关系。使用至少 3 个点建立起正算多项式模型后,便可以将自动检测出来的控制点迅速对应到参考影像上,只需要在很小的范围内调整就可以精确标注出其在参考影像上的位置。图 4-5 左侧为原始影像上自动检测点,右侧为参考影像上粗定位点,需要进行调整。

图 4-5 配准

虽然计算机的引入可以大量节约劳动,但是因为技术所限,并不能解决矫正和配准所有环节的全部问题,从而将测绘工作者彻底解放出来。

本次项目生产过程中,针对 SPOT 5_10 m 多光谱数据重采样成间隔为 2.5 m,重采样方法采用双线性内插法。以景为配准单元,以 SPOT 5_2.5 m 全色数据为配准基础,将 SPOT 5 多光谱数据与之配准。随机选择配准后全色与多光谱数据上的同名点,要求配准误差平原和丘陵地区不超过 0.5 个像元,山区适当放宽至 1 个像元。配准控制点文件命名使用“景号 + MULTI 和 PAN”,如“287267MULTI”。配准文件命名使用“景号 + MATCH”,如“287267MATCH”。

影像配准采用的是 ERDAS 9.1 中的自动配准模块(AutoSync)。首先,在单景影像的四角部位手动选取四个配准控制同名点,然后由软件生成自动配准控制点,剔除其中误差较大的控制点后,进行自动配准(图 4-6)。配准完成后,采用软件提供的“拉窗帘”的方式对整景影像自上而下、自左至右进行配准精度检查(图 4-7)。

总结配准的工作,可以看到基本上分为如下几步:①标注至少 3 个粗匹配控制点;②设置检测参数;③进行自动检测;④人工调整和保存控制点;⑤进行配准。其中第 4 步仍然需要人工参与,主要的问题在于两点:一是精度是否真正是人感官上的特征点方面存在问题;二是参考图像上的控制点仅仅是粗略对应标注,人工无法手动调整至精确对应位置,因此,暂时的配准工作仅仅部分减轻了人工工作量,但不可能完全由计算机完成配准工作。

图 4-6 影像配准

图 4-7 影像配准精度“拉窗帘”检查

4.3.3 数据融合

4.3.3.1 融合前数据的预处理

获取完整项目区的卫星影像数据时,由于接收时间跨度较大,数据时相差别较大,加上空中云、雾或霾的干扰以及地面光照不均匀等因素,造成景与景之间的影像光谱和纹理特征差别较大。为使影像纹理清晰,细节突出,提高目视解译精度等,在数据融合前必须对数据进行预处理。

SPOT 5 全色波段数据处理的目的是增强局部灰度反差、突出纹理、加强纹理能量和通过滤波来提高纹理细节。

(1)线性变换。经过线性拉伸处理的影像数据,既增强局部灰度反差又保持原始灰度间的相对关系。

图 4-8 线性变换

设A1、A2为输入影像的嵌位控制值,B1、B2为变换后影像最低、最高亮度值(图4-8),输入影像的亮度值A1~A2被拉伸为B1~B2范围,其中输入亮度0~A1及A2~255分别被变换为B1、B2,如果赋值B1=0、B2=255,则拉大了输入影像的动态范围,从而反差得到增强,保持了输入影像灰度间的线性关系。通过线性拉伸将位移A1变换为0,而将A2变为255;这样既没有改变A1到A2之间灰度值的相对关系,又扩展了直方图的动态范围,从而增强影像结构的细微突变信息。

(2)纹理增强。纹理能量增强目前主要靠高通滤波来实现,在空域增强中滤波器选择是关键。不同影像地貌、地物选择的滤波核各异。一般地,在地形高起伏地区,地理单元比较宏观,采用的滤波器一般较大,能够反映地理单元的宏观特点,选择较小的滤波核会破坏整体的地貌外形。在地理单元分布细碎,地貌细腻,选择滤波器相对应较小,否则无法表现细碎的纹理结构。在纹理能量增强时应该避免增强过剩,否则影像细节会过于饱和,使纹理丧失,达不到增强细节的目的。以下滤波核是本次用到的边缘增强滤波算子,应用效果比较好。如图4-9所示。

图 4-9 滤波增强

(3)多光谱数据处理。在融合影像中,多光谱数据的贡献是其光谱信息。融合前主要以色彩增强为主,调整亮度、色度、饱和度,拉开不同地类之间的色彩反差,对局部的纹理要求不高,有时为了保证光谱色彩,还允许削弱部分纹理信息。

4.3.3.2 影像融合

目前用于多源遥感数据融合的方法很多,从技术层次来分,可以包括像元级融合、特征级融合和决策级融合三个层次。像元级融合有HIS变换、主分量变换、假彩色合成、小波变换、加权融合等方法;特征级融合有Bayes、决策法、神经网络法、比值运算、聚类分析等方法;决策级融合有基于知识的融合、神经网络、滤波融合等方法。从融合算法上分,可分为对图像直接进行代数运算的方法,如加权融合法、乘积融合法、Brovey变换融合法等;第二种是基于各种空间变换的方法,如HIS变换融合法、PCA变换融合法、Lab变换融合法等;第三种是基于金字塔式分解和重建的融合方法,如拉普拉斯金字塔融合法、小波变换融合法。

本项目所使用数据为SPOT5数据,缺少蓝波段多光谱,对数据采用了自然色模拟方法,在土地利用资源调查中,多光谱信息可以突出地反映土地利用类型的要素信息,提高影像的可判读性,便于从图形、纹理特征及光谱特征进行综合判别分析。一般遥感卫星多光谱传感器波谱范围覆盖整个可见光部分,即蓝、绿、红波段。而SPOT系列遥感卫星其多光谱覆盖范围在可见光部分仅从绿到红波段,缺少蓝波段。在利用遥感卫星影像进行土地利用资源调查时,多光谱信息要求必须以人眼可见的自然色表达,而不允许用伪彩色和红外彩色模拟,以便于非遥感测绘人员的判读与实地调查。对于通常的SPOT系列遥感卫星的自然色模拟方法,往往仅靠不同波段组合,以人眼目视判别、感知来调整色调。作业人员的先验知识作色调调整,作业人员经验欠缺时,色调调校失真较大;二是标准难以定量统一,不同调校时间、人员,不同景影像的拼接,由于感知的差异都难以达到同一或近似的标准。通过分析全省SPOT5数据特征,本次影像融合处理主要采用了乘积变换融合和Andorre融合。

Andorre融合采用的是视宝公司提供的Andorre融合方法,具体步骤为:

步骤1 对全色影像先做正态化处理。等价于Wallis滤波及增强局部(纹理增强)与全局对比度。

步骤2 按下面公式融合(P是正态化处理后的全色影像,B1是绿波段,B2是红波段,B3是近红外波段)。

ERDAS 中模块计算公式:

§ 公式一(蓝通道):

§ 公式二(绿通道):

§ 公式三(红通道):

步骤 3 按下面公式完成伪自然色转换:

ERDAS 中模块计算公式:

§ 公式一(红通道):

§ 公式二(绿通道):

§ 公式三(蓝通道):

步骤 4 对步骤 3 生成的各个通道执行直方图拉伸处理。通常,线性直方图拉伸可以满足这种彩色影像的调整,需要根据影像目视效果定义阈值。阈值的选择应该避免在平衡其他颜色造成的像素过饱和。或在 Photoshop 中调整影像色调、亮度及对比度等直至满足要求。

通过 ERDAS 中 Model 实现其算法(图 4-10)。

4.3.3.3 融合影像后处理

后处理主要采用以下 5 种方法:

(1)直方图调整。对反差较低、亮度偏暗的融合影像,调整输入输出范围,改变反差系数进行线性拉伸,使其各色直方图达到接近正态分布。输出范围一般都定为 0~255,而在输入范围的选择中,对低亮度端的截去应慎重,可以消除部分噪声。

(2)USM 锐化。通过变化阈值、半径、锐化程度增强地物边缘特征。注意阈值和半径的设定值不宜过大,锐化程度可根据不同地区影像特点适当选取。通过软件的预览功能可以判断参数选择得是否合适。城乡结合部、居民点、道路和耕地边界是需要重点突出的地物,必须保证清晰可辨,进一步改善总体效果。

(3)彩色平衡。经过融合运算后,影像或多或少会带有一定程度的偏色,需要通过调整彩色平衡加以改正。

(4)色度饱和度调整。由于 SPOT 5 影像融合后存在大量的洋红色,与实地颜色不一致的,可以通过改变色度、饱和度、明度等将其转变为土黄色,使其更接近于真实颜色。

(5)反差增强。通过亮度和对比度调整,可以增强地物间的反差,使不同地类更易区分。

通过融合影像后处理,进一步改善影像的视觉效果,使整景影像色彩真实均匀、明暗程度适中、清晰,增强专题信息,特别是加强纹理信息。

图 4-10 融合处理算法

4.3.4 正射校正模型选择与处理

4.3.4.1 正射纠正的基本模型

一般对推扫式遥感卫星影像的正射纠正有严密纠正模型和变换关系纠正模型两大类。严密纠正模型根据卫星轨道参数、传感器摄影特征以及成像特点,由传感器在获取影像瞬间的位置、方位等因素,建立起像点与地面之间的共线关系,并由此共线方程解求像点或地面点的纠正。而变换关系纠正模型是一种传统的几何纠正方式,不考虑成像的特性,它通过地面控制点与影像同名点计算出不同变换式的变换系数,从而将变形的原始影像拟合到地面坐标中。

严密纠正模型有基于多项式的共线方程、基于卫星轨道参数的纠正方法、基于光束法的区域网平差等方法;变换关系纠正模型有多项式纠正、有理函数多项式、有理函数多项式区域网平差等方法。其中,区域网平差是用较少的控制点以多景影像组成区域网进行平差的纠正方法。

(1)基于多项式的共线方程纠正方法。改正原始影像的几何变形,采用像素坐标变换,使影像坐标符合某种地图投影和图形表达方式和像素亮度值重采样。在摄影瞬间,传感器、影像、地面三者之间,以共线方程反映了成像时地面点和像点之间一一对应的关系。

由于推扫式成像是当前大多数遥感卫星采用的主流成像方式,那么整景影像为多中心投影,每条扫描线是中心投影。用共线方程表达为

推扫式成像的每一扫描线外方位元素均不同,且y值恒为0。正射纠正时必须求解每一行的外方位元素,利用共线方程得到与地面点相对应的像点坐标,加入DEM后对影像进行纠正。

一般可以认为,在一定时间内,遥感卫星在轨道运行时,空间姿态变化是稳定的,那么6个外方位元素的变化是时间的函数。由于推扫式影像y坐标和时间之间有固定的对应关系,即每行扫描时间相同,所以可将第i行外方位元素表示为初始外方位元素(φi,wi,ki)和行数y的函数,而这个函数可以用二次多项式函数来表示,即

该方法需获得初始外方位元素可从星历文件中得到,如SPOTS影像星历,在DIM,CAP格式文件中。

(2)多项式纠正方法。多项式纠正方法是一种传统的变换关系纠正方法。多项式用二维的地面控制点计算出与像点的变换关系,设定任意像元在原始影像中坐标和对应地面点坐标分别为(x,y)和(X,Y),以x=Fx(x,y),y=Fy(x,y)数学表达式表达,如果该数学表达式采用多项式函数来表达,则像点坐标(x,y)与地面点坐标(X,Y)建立的多项式函数为

式中(:a0,a1,a2,a3,……,an)(,b0,b1,b2,b3,……,bn)——变换系数。

一般多项式阶数是1阶到5阶的,式中表达的为3阶。所需控制点数N与多项式阶数n的关系为:N(=n+1)(n+2)/2,即1阶需3个控制点,2阶需6个控制点,3阶需10个控制点。

多项式纠正考虑二维平面间的关系差,因此,对于地形起伏高差较大的区域,并不能改正由地形起伏引起的投影误差,纠正后的精度就不高。另外考虑入射角的影响,多项式纠正对于地形起伏较大地区并不适宜。

(3)有理函数纠正方法。有理函数纠正方法是一种变换关系的几何纠正模型,以有理函数系数(Rational Function Coefficient)将地面点P(La,Lb,Hc)与影像上的点(pIi,Sa)联系起来。对于地面点P,其影像坐标(pIi,Sa)的计算始于经纬度的正则化,即

正则化的影像坐标(x,y)为

求得的影像坐标为

有理函数纠正不仅以较高的精度进行物方和像方的空间变换,相对于多项式纠正方法考虑了地面高程,相对于基于共线方程模型使复杂的实际传感器模型得以简化,便于实现。

(4)区域网平差纠正方法。区域网平差,首先将三维空间模型经过相似变换缩小到影像空间,再将其以平行光投影至过原始影像中心的一个水平面上,最后将其变换至原始倾斜影像,从而进行以仿射变换建立误差方程,包括每景影像的参数和地面影像坐标的改正,组成法方程,进行平差计算改正。基于模型的区域网平差,是通过影像之间的约束关系补偿有理函数模型的系统误差。区域网平差要合理布设控制点,在景间需有一定数量的连接点,所需控制点数量较少。

4.3.4.2 正射纠正

本次遥感影像正射纠正采用专业遥感影像处理软件ERDAS提供的LPS正射模块进行的,纠正过程如图4-11所示。

图 4-11 正射纠正流程

为了与以往的县级土地利用数据库相衔接,平面坐标系统仍然采用 1954 北京坐标系,高程系统采用 1985 国家高程基准,投影方式采用高斯-克吕格投影,分带方式为 3°分带。

本项目涉及 79 景连片且同源影像数据,因此采用整体区域纠正,以工作区为纠正单元,利用具有区域网纠正功能的 ERDAS 中 LPS 模块进行区域网平差,根据影像分布情况建立一个区域网文件,快速生成无缝正射镶嵌精确的正射影像,如图 4-12 所示。因本工作区涉及 37°、38°、39°三个 3°分带,考虑到全省数据镶嵌等问题,整个工程采用 38°带,其中央经线为 114°。

本次纠正中采用 SPOT 5 物理模型,控制点均匀分布于整景影像,控制点个数 25 个,相邻景影像重叠区有 2 个以上共用控制点。

工作区控制点分布如图 4-13 所示。

影像正射纠正以实测控制点和 1∶5 万 DEM 为纠正基础,以工作区为纠正单元,采样间隔为 2.5 m。

对控制点和连接点超过限差的要进行检查、剔除,发现误差超限的点位,应先通过设置其为检查点方式重新解算,如解算通过,则通过平差解算;如果纠正精度超限,查找超限原因,则应考虑在误差较大的点位附近换点或增补点加以解决,并进行必要的返工,直至满足要求为止。控制点采集如图 4-14 所示。

对整景利用 DEM 数据在 LPS 中选取 SPOT 5 Orbital Pushbroom 传感器模型,投影选取 Gauss Kruger,椭球体采用 Krasovsky,进行正射纠正,纠正精度满足 SPOT 5_2.5 m 数字正射影像图纠正精度要求,纠正后的图面点位中误差见表 4-2。

图 4-12 整体区域纠正控制点选取示意图

图 4-13 区域网平差纠正工程图

图 4-14 控制点采集

表 4-2 正射纠正控制点中误差

续表

4.3.5 镶嵌

以项目区为单位,对相邻景正射影像的接边精度进行检查。经检查接边精度合格后,以项目区为单位,对正射影像进行镶嵌。

由于项目区采用的是 ERDAS 提供的 LPS 正射模块区域网平差纠正,相邻两幅影像,均采集了两个以上的共用控制点,相应提高了影像镶嵌精度。

在项目区相邻景影像的重叠区域中,平原、丘陵与山区分别随机选取了 30 对均匀分布的检查点,检查影像的接边精度。根据检查点的点位坐标,计算检查点点位中误差。见表 4-3。

表 4-3 影像镶嵌误差

本项目影像镶嵌以工作区为单元,在景与景之间镶嵌线尽量选取线状地物或地块边界等明显分界处,以便使镶嵌影像中的拼接缝尽可能地消除,尽量避开云、雾及其他质量相对较差的区域,使镶嵌处无裂缝、模糊和重影现象,使镶嵌处影像色彩过渡自然,使不同时相影像镶嵌时保证同一地块内纹理特征一致,方便地类判读和界线勾绘。影像镶嵌图如图 4-15 所示。

⑦ 目标跟踪系统中的滤波方法这本书好吗


标跟踪系统中的滤波方法》共分10章。第1章介绍了滤波方法在目标跟踪系统中的地位和作用,以及滤波方法的研究进展和评价标准。第2章对卡尔曼滤波和与卡
尔曼滤波相关的非线性滤波算法做了论述。第3章介绍粒子滤波,包括序贯重要性重采样粒子滤波、辅助粒子滤波、正则化粒子滤波、扩展卡尔曼粒子滤波、高斯和
粒子滤波、边缘粒子滤波等。第4章论述等式状态约束条件下的滤波算法,提出了一种线性等式状态约束条件下的粒子滤波算法和一种迭代收缩非线性状态约束条件
下的滤波算法。第5章讨论自适应卡尔曼滤波,提出了一种双重迭代变分贝叶斯自适应卡尔曼滤波算法及其融合方法。第6章讨论无序量测条件下的滤波方法,提出
了一种基于不敏变换的无序量测融合算法。第7章讨论网络丢包条件下的滤波方法,提出了一种非线性系统中具有丢包情况的滤波方法。第8章研究各类非线性滤波
RTs平滑算法,并在此基础上提出了一种RTs分段融合方法。第9章介绍了几种非线性滤波算法在目标跟踪系统中的应用实例。第10章是相关的数学预备知
识,内容涉及向量和矩阵、随机变量、随机向量和随机过程。

《目标跟踪系统中的滤波方法》内容属于信息融合研究领域。针对多条件下目标跟踪系统中的滤波方法,本书结合近年来国内外研究热点进行论述,内容较为新颖。
具体内容包括:卡尔曼滤波和非线性系统滤波、粒子滤波、等式状态约束条件下的滤波、自适应卡尔曼滤波及其融合、无序量测条件下的滤波、网络丢包条件下的滤
波、RTS平滑及其分段融合以及非线性滤波算法在目标跟踪中的应用等。
《目标跟踪系统中的滤波方法》可供电子信息、自动化、计算机应用、控制科学与工程、信号处理、导航与制导等相关专业高年级本科生和研究生,以及相关领域的工程技术人员和研究人员参考。

⑧ 软件滤波的算法

1、限幅滤波法(又称程序判断滤波法)
A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效。如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
B、优点:能有效克服因偶然因素引起的脉冲干扰。
C、缺点:无法抑制那种周期性的干扰,平滑度差。
2、中位值滤波法
A、方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。
B、优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果。
C、缺点:对流量、速度等快速变化的参数不宜。
3、算术平均滤波法
A、方法:连续取N个采样值进行算术平均运算。N值较大时:信号平滑度较高,但灵敏度较低;N值较小时:信号平滑度较低,但灵敏度较高。N值的选取:一般流量,N=12;压力:N=4
B、优点:适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。
4、递推平均滤波法(又称滑动平均滤波法)
A、方法:把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则),把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
B、优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。
C、缺点:灵敏度低 ,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
A、方法:相当于“中位值滤波法”+“算术平均滤波法”。连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。N值的选取:3~14
B、优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。
C、缺点:测量速度较慢,和算术平均滤波法一样,比较浪费RAM。
6、限幅平均滤波法
A、方法:相当于“限幅滤波法”+“递推平均滤波法”,每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理。
C、缺点:比较浪费RAM。
7、一阶滞后滤波法
A、方法:取a=0~1,本次滤波结果=(1-a)*本次采样值+a*上次滤波结果。
B、优点:对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合。
C、缺点: 相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。
8、加权递推平均滤波法
A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权。通常是,越接近现时刻的数据,权取得越大。给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。
B、优点:适用于有较大纯滞后时间常数的对象和采样周期较短的系统。
C、缺点:对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号不能迅速反应系统当前所受干扰的严重程度,滤波效果差。
9、消抖滤波法
A、方法:设置一个滤波计数器将每次采样值与当前有效值比较:如果采样值=当前有效值,则计数器清零如果采样值<>当前有效判断计数器是否>=上限N(溢出),如果计数器溢出,则将本次值替换当前有效值,并清计数器 。
B、优点:对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。
C、缺点:对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。
10、限幅消抖滤波法
A、方法:相当于“限幅滤波法”+“消抖滤波法” 先限幅,后消抖。
B、优点: 继承了“限幅”和“消抖”的优点改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统。
C、缺点:对于快速变化的参数不宜。
11、IIR 数字滤波器
A. 方法:确定信号带宽, 滤之。 Y(n) = a1*Y(n-1) + a2*Y(n-2) + . + ak*Y(n-k) + b0*X(n) + b1*X(n-1) + b2*X(n-2) + . + bk*X(n-k)。
B. 优点:高通,低通,带通,带阻任意。设计简单(用matlab)
C. 缺点:运算量大。

⑨ 常用的数字滤波的方法都有哪些,写出其中三种数字滤波的算法

经典滤波的概念,是根据傅里叶分析和变换提出的一个工程概念。根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。实际上,任何一个电子系统都具有自己的频带宽度(对信号最高频率的限制),频率特性反映出了电子系统的这个基本特点。而滤波器,则是根据电路参数对电路频带宽度的影响而设计出来的工程应用电路 。
现代滤波
现代滤波思想是和经典滤波思想截然不同的。现代滤波是利用信号的随机性的本质,将信号及其噪声看成随机信号,通过利用其统计特征,估计出信号本身。一旦信号被估计出,得到的信号本身比原来的信噪比高出许多。典型的数字滤波器有Kalman滤波,Wenner滤波,自适应滤波,小波变换(wavelet)等手段[3] 。从本质上讲,数字滤波实际上是一种算法,这种算法在数字设备上得以实现。这里的数字设备不仅包含计算机,还有嵌入式设备如:DSP,FPGA,ARM等。

阅读全文

与滤波融合算法相关的资料

热点内容
1024程序员节小米 浏览:313
共享和ftp服务器有什么区别 浏览:712
centos7卸载php 浏览:181
解压黏黏球如何玩 浏览:227
位域结构体编译树形描述 浏览:652
宏基手机如何装安卓系统 浏览:743
linuxcp命令实现 浏览:668
单片机热释红外报警器 浏览:661
单片机原理及接口技术b卷 浏览:356
php链接正则表达式 浏览:966
安卓版苹果手机怎么转手 浏览:103
安卓怎么修改app的名字 浏览:139
域名服务器可将域名地址 浏览:724
广州服务器机柜怎么卖 浏览:238
转让腾讯云三年服务器 浏览:254
网易云音乐加密怎么处理 浏览:389
编译小视频软件 浏览:597
盒马app买东西怎么送 浏览:121
编译原理国产 浏览:694
在线用pdf转word 浏览:426