图像处理——KL变换原理
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变换原理相关推荐
- 【12月学习进度12/31——特征提取】离散KL变换原理、实例以及matlab实现(转载)
转载自:离散KL变换原理.实例以及matlab实现 从n维特征中选取m维特征,如何在信息损失最小的情况下选取特征(因为必然会删去n-m维特征),使得剩下的特征更加有利于分类,离散K-L变换(Karhu ...
- K-L变换原理、图像压缩与人脸识别实战(附matlab代码)
目录 摘要 K-L变换的基本原理 K-L变换在图像压缩中的应用 研究背景及意义 数字图像压缩与发展现状 K-L变换与图像压缩 K-L变换在人脸识别中的应用 人脸识别 K-L变换实现人脸识别 总结 参考 ...
- 离散KL变换原理、实例以及matlab实现
从nnn维特征中选取m" role="presentation">mmm维特征,如何在信息损失最小的情况下选取特征(因为必然会删去n-m维特征),使得剩下的特征更加 ...
- 【matlab 图像处理】离散傅里叶变换离散余弦变换K-L变换小波变换
[matlab 图像处理]离散傅里叶变换&离散余弦变换&K-L变换&小波变换 正交变换是信号处理的一种有效工具.图像信号不仅可以在空间域表示,也可以在频域表示,后者将有利于许多 ...
- 数字图像处理,图像的频域变换(四)——K-L变换详解 以及 哈尔变换Haar简介
https://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE%E7%9F%A9%E9%98%B5 KL中将五副图像作为原始图像的五个分量,然后使用 ...
- 深度解析K-L变换 及其 在特征识别中的应用
1.K-L变换定义.意义 K-L变换也常称为主成分变换(PCA),是一种基于图像统计特性的变换,它的协方差矩阵除对角线以外的元素都是零(所以大家也叫它最佳变换),消除了数据之间的相关性,从而在信息压 ...
- K-L变换实现图像压缩
卡洛南-洛伊(karhunen-Loeve)变换,简称K-L变换,也叫霍特林变换或者主成分分析. 必备数学知识:协方差,相关系数,协方差矩阵(这三个知识点我是参考的同济大学的概率论数与数理统计那本书, ...
- 主成分分析(PCA)算法,K-L变换 角度
主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它是用一种较少数 量的特征对样本进行描述以达到降低特征空间维数的方法,它的本质实际上是K-L变换.PCA方法最著名的应用应该是在人脸识别中特 ...
- 主成分分析(PCA)与K-L变换
主成分分析与K-L变换 1. 主成分分析 -- 基于最大方差的描述 1.1 投影数据的方差 1.2 高维数据的降维 2. K-L变换 -- 基于最小误差的描述 2.1 内积空间中的正交变换 2.2 信 ...
最新文章
- mysql sql variant_SQL 数据类型
- CTFshow 文件上传 web153
- 神经网络的耦合作用与规范场
- Visual C++——加速键
- atom-design(Vue.js移动端组件库)手势组件介绍
- Python编程基础05:运算符与表达式
- Springboot整合log4j2日志全解
- Flink流式计算在节省资源方面的简单分析
- 步进电机基础(7.2)-步进电机的选择方法-位置定位精度、转速方面、转速变化率和依据使用环境来选择
- electron 解压zip_electron 打包问题 解决
- 佛说:前生五百次的凝眸,换今生一次的擦肩
- 环信携手华为云助企纾困数字化发展
- 基于百万级别的站内信设计
- OpenStack官方认证(COA)正式回归!
- Linux安装消息队列IBM MQ 7.5开发版安装配置详解
- 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换
- GBase 8s SQLCODE
- linux 下navicat 中文乱码终极解决方案
- ROS control-----controller_manager简介
- 孕妇做什么副业好?孕妇在家可以做的副业
热门文章
- Python打开Excel超链接
- 机械硬盘速度测试软件用哪个,硬盘测评,脱颖而出的果然是它!
- “耽改”热中的“腐文化”!为我开启创意者和教育者的,Adobe国际认证旅程
- 绿联 蓝牙适配器 linux,选择进退两难-绿联4.1蓝牙适配器_硬件测评心得_ZNDS
- 【工具】监听手机短信转发到群聊或服务器
- java对接医疗设备_基于Java框架的医疗设备管理系统设计与实现
- 拓扑空间(topological space )的定义
- Scrapy 框架简介 抓取一点资讯
- React高频面试题总结 (附答案及原理代码)
- 如何选择良好的视觉引导定位技术?