窗口程序集名 | 保 留 | 保 留 | 备 注 | 程序集1 | | | | 变量名 | 类 型 | 数组 | 备 注 | 宽 | 整数型 | | 高 | 整数型 | | 鼠标位置 | 坐标二维整型结构 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 卡尔曼 | 卡尔曼滤波器类 | | | 状态向量 | 整数型 | | | 测量向量 | 整数型 | | | 状态 | 小数型 | | 16 | 步长 | 小数型 | | | 随机 | 随机数类 | | | 测量值 | 数据矩阵类 | | | 图 | 数据矩阵类 | | | 预测坐标 | 坐标二维整型结构 | | |
高 = 600 宽 = 800 鼠标位置. 初始化 (右移 (宽, 1 ), 右移 (高, 1 )) 状态向量 = 4 测量向量 = 2 卡尔曼. 初始化 (状态向量, 测量向量, 0, #矩阵_小数型 ) 状态 = { 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1 }步长 = 1 如果真 (步长 ≠ 1 )状态 [3 ] = 步长 状态 [8 ] = 步长 卡尔曼.转移. 初始化指针 (4, 4, #矩阵_小数型, 取变量数据地址 (状态 )) 视觉_设置为单位矩阵 (卡尔曼.测量, ) 视觉_设置为单位矩阵 (卡尔曼.过程协方差, 标量 (1e-005 )) 视觉_设置为单位矩阵 (卡尔曼.测量协方差, 标量 (0.1 )) 视觉_设置为单位矩阵 (卡尔曼.后验误差, 标量 (10 )) 随机. 填充 (卡尔曼.校正, #随机_均匀分布, 0, 视觉_取最小值 (宽, 高 ), 假) 测量值. 初始化零 (测量向量, 1, #矩阵_小数型 ) 视觉_创建窗口 (“小白鼠 卡尔曼演示”, 1 )视觉_设置鼠标事件 (“小白鼠 卡尔曼演示”, &鼠标事件, 0 )图. 初始化零 (高, 宽, #矩阵_三通道字节型U )循环判断首 () 卡尔曼. 预测 ()预测坐标. 初始化 (到整数 (卡尔曼.预测. 取元素 (0, 0 )), 到整数 (卡尔曼.预测. 取元素 (0, 1 )) ) 测量值. 置元素 (0, 0, 鼠标位置.横坐标 )测量值. 置元素 (0, 1, 鼠标位置.纵坐标 ) 卡尔曼. 更新 (测量值 ) 图. 设置 (标量 (255, 255, 255, 0 ), ) 视觉_圆 (图, 预测坐标, 5, 标量 (0, 255, 0 ), 3, 8, 0 ) 视觉_圆 (图, 鼠标位置, 5, 标量 (255, 0, 0 ), 3, 8, 0 ) 视觉_放置文本 (图, “predicted position:(” + 到文本 (预测坐标.横坐标 ) + “,” + 到文本 (预测坐标.纵坐标 ) + “)”, 坐标二维整型 (10, 30 ), #字体_更复杂的手写风格, 1, 标量 (0, 0, 0 ), 1, 8, 假)视觉_放置文本 (图, “current location:(” + 到文本 (鼠标位置.横坐标 ) + “,” + 到文本 (鼠标位置.纵坐标 ) + “)”, 坐标二维整型 (10, 60 ), #字体_更复杂的手写风格, 1, 标量 (0, 0, 0 ), 1, 8, 假)视觉_显示图像 (“小白鼠 卡尔曼演示”, 图 )循环判断尾 (视觉_等待按键 (3 ) ≠ #Esc键 )返回 (0 ) |
鼠标事件 | | | |
event | 整数型 | | | | x | 整数型 | | | | y | 整数型 | | | | flags | 整数型 | | | | 如果真 (event = #事件_鼠标移动 )鼠标位置. 初始化 (x, y )
|