KL变换

定义:以矢量信号X的协方差矩阵Ф的归一化正交特征矢量q所构成的正交矩阵Q,来对该矢量信号X做正交变换Y=QX,则称此变换为K-L变换(K-LT或KLT),K-LT是Karhunen-Loève Transform的简称,有的文献资料也写作KLT。(来自百度)

K-L变换是最佳正交变换方式,对相关向量求协方差矩阵,按照特征值的大小排列特征向量。变换域中能量可以集中到少数几个变换系数上(特征值大的特征向量上的系数),其编码效率高,误差小,但运算复杂度大。

其根本目的,就是依次寻找能量最大的坐标轴,用于消除多维数据之间的相关性。

1.协方差矩阵


左图为方差公式,右图为协方差公式。一维情形时,协方差即方差。
协方差矩阵


协方差矩阵用于多维情形,此时分子得n-1可以写为N;

2.相关系数

计算的各维度之间的相关系数,就是在协方差基础上除以标准差来归一化

3.具体计算过程

①对样本进行去中心化;
具体流程:对样本X求平均值M,X-M就是去中心化得到得矩阵
②求样本X的协方差矩阵C;
可以直接用库里得协方差函数求解
③求解C的特征值和特征向量,取前k组最大的特征值对应的特征向量组成正交变换矩阵P;
④求解压缩后数据集Y = X * P;
⑤求解Y的协方差矩阵D = P *C * P.T
⑥可视化数据集Y
如果Y是二维数据得话,可以考虑一维做横轴,一维做纵轴,绘制二维图像。

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltmy = pd.read_csv('D:\\data.asc', header=None, sep=' ', na_values=['missing'], index_col=0)
X = np.array(my)
k = 2
average = np.mean(X, axis=0)       # 去中心化,求X平均
m, n = np.shape(X)
avgs = np.tile(average, (m, 1))
data_adjust = X - avgs
C = np.cov(data_adjust.T)           # 求X协方差矩阵
print("X的协方差矩阵(32*32):\n", C)
featValue, featVec = np.linalg.eig(C)
print("特征值32:")
print(featValue)
index = np.argsort(-featValue)
P = np.matrix(featVec.T[index[:k]])         # 求正交变换矩阵P
print("正交变换矩阵P(2*32):\n", P)
Y = X * P.T
D = P * C * P.T                    # 求Y的协方差矩阵np.set_printoptions(suppress=True)
arrayD = np.array(D)
print("Y的协方差矩阵(2*2):\n", arrayD)#可视化Y
arrayY = np.array(Y)
x = []
y = []
for i in range(len(arrayY)):x.append(arrayY[i, 0])y.append(arrayY[i, 1])
plt.scatter(x, y, c='green', marker='.')
plt.show()

也可以直接调用模块。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
my = pd.read_csv('D:\\data.asc',header=None,sep=' ',na_values=['missing'],index_col=0)
mydata = np.array(my)pca=PCA(n_components=2)
newdata=pca.fit_transform(mydata)
print(newdata)x=[]
y=[]
for i in range(len(newdata)):x.append(newdata[i][0])y.append(newdata[i][1])
plt.scatter(x, y, c='g', marker='.')
plt.show()

图像处理——KL变换原理相关推荐

  1. 【12月学习进度12/31——特征提取】离散KL变换原理、实例以及matlab实现(转载)

    转载自:离散KL变换原理.实例以及matlab实现 从n维特征中选取m维特征,如何在信息损失最小的情况下选取特征(因为必然会删去n-m维特征),使得剩下的特征更加有利于分类,离散K-L变换(Karhu ...

  2. K-L变换原理、图像压缩与人脸识别实战(附matlab代码)

    目录 摘要 K-L变换的基本原理 K-L变换在图像压缩中的应用 研究背景及意义 数字图像压缩与发展现状 K-L变换与图像压缩 K-L变换在人脸识别中的应用 人脸识别 K-L变换实现人脸识别 总结 参考 ...

  3. 离散KL变换原理、实例以及matlab实现

    从nnn维特征中选取m" role="presentation">mmm维特征,如何在信息损失最小的情况下选取特征(因为必然会删去n-m维特征),使得剩下的特征更加 ...

  4. 【matlab 图像处理】离散傅里叶变换离散余弦变换K-L变换小波变换

    [matlab 图像处理]离散傅里叶变换&离散余弦变换&K-L变换&小波变换 正交变换是信号处理的一种有效工具.图像信号不仅可以在空间域表示,也可以在频域表示,后者将有利于许多 ...

  5. 数字图像处理,图像的频域变换(四)——K-L变换详解 以及 哈尔变换Haar简介

    https://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE%E7%9F%A9%E9%98%B5 KL中将五副图像作为原始图像的五个分量,然后使用 ...

  6. 深度解析K-L变换 及其 在特征识别中的应用

    1.K-L变换定义.意义  K-L变换也常称为主成分变换(PCA),是一种基于图像统计特性的变换,它的协方差矩阵除对角线以外的元素都是零(所以大家也叫它最佳变换),消除了数据之间的相关性,从而在信息压 ...

  7. K-L变换实现图像压缩

    卡洛南-洛伊(karhunen-Loeve)变换,简称K-L变换,也叫霍特林变换或者主成分分析. 必备数学知识:协方差,相关系数,协方差矩阵(这三个知识点我是参考的同济大学的概率论数与数理统计那本书, ...

  8. 主成分分析(PCA)算法,K-L变换 角度

    主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它是用一种较少数 量的特征对样本进行描述以达到降低特征空间维数的方法,它的本质实际上是K-L变换.PCA方法最著名的应用应该是在人脸识别中特 ...

  9. 主成分分析(PCA)与K-L变换

    主成分分析与K-L变换 1. 主成分分析 -- 基于最大方差的描述 1.1 投影数据的方差 1.2 高维数据的降维 2. K-L变换 -- 基于最小误差的描述 2.1 内积空间中的正交变换 2.2 信 ...

最新文章

  1. mysql sql variant_SQL 数据类型
  2. CTFshow 文件上传 web153
  3. 神经网络的耦合作用与规范场
  4. Visual C++——加速键
  5. atom-design(Vue.js移动端组件库)手势组件介绍
  6. Python编程基础05:运算符与表达式
  7. Springboot整合log4j2日志全解
  8. Flink流式计算在节省资源方面的简单分析
  9. 步进电机基础(7.2)-步进电机的选择方法-位置定位精度、转速方面、转速变化率和依据使用环境来选择
  10. electron 解压zip_electron 打包问题 解决
  11. 佛说:前生五百次的凝眸,换今生一次的擦肩
  12. 环信携手华为云助企纾困数字化发展
  13. 基于百万级别的站内信设计
  14. OpenStack官方认证(COA)正式回归!
  15. Linux安装消息队列IBM MQ 7.5开发版安装配置详解
  16. 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换
  17. GBase 8s SQLCODE
  18. linux 下navicat 中文乱码终极解决方案
  19. ROS control-----controller_manager简介
  20. 孕妇做什么副业好?孕妇在家可以做的副业

热门文章

  1. Python打开Excel超链接
  2. 机械硬盘速度测试软件用哪个,硬盘测评,脱颖而出的果然是它!
  3. “耽改”热中的“腐文化”!为我开启创意者和教育者的,Adobe国际认证旅程
  4. 绿联 蓝牙适配器 linux,选择进退两难-绿联4.1蓝牙适配器_硬件测评心得_ZNDS
  5. 【工具】监听手机短信转发到群聊或服务器
  6. java对接医疗设备_基于Java框架的医疗设备管理系统设计与实现
  7. 拓扑空间(topological space )的定义
  8. Scrapy 框架简介 抓取一点资讯
  9. React高频面试题总结 (附答案及原理代码)
  10. 如何选择良好的视觉引导定位技术?