最近看了关于图像字典训练的部分,但是照着书中的讲解,却得不到书中的图像。

书中的2D-DCT字典是利用8*11的冗余1D-DCT字典的克罗内克积张成的,但是直接使用matlab的kron函数张成的图像是如下图所示:

而书中展示出来的字典是下图的形式:

那到底克罗内克积产生的字典应该是什么样的呢?其实,应该是第一张图片所示的字典,那书中到底是怎么回事呢?

实验后发现,原来书中为了能看明白每一列是什么内容,将由克罗内克积产生的64*121的字典reshape,每一列reshape为8*8的图像块,最终组合成展示字典。该展示字典的第i,j个块可以由下式生成:

DCTMTX(:,i)*DCTMTX(j,:)

也即是DCT冗余字典的第i列和第j行的张成矩阵。该字典的列向量是l2归一化的。

下面是直接生成展示字典的代码:

其生成的字典图像为:

该图像基本与书中类似。

另外,关于什么是separable的理解,个人认为,这个概念是相对于非结构化字典而言的。对于结构化的字典,进行二维计算时,不必显式存储,例如8*11的冗余字典DCTMTX,不必存储为64*121的克罗内克积张成字典,而仅需要通过对8*8的image patch左乘DCTMTX',右乘DCTMTX即可得到系数矩阵。而非结构化字典,比如K-SVD生成的字典,由于不存在克罗内克积等张成关系,因此必须显式存储,且只能通过将图像块变成一列,然后右乘字典转置。同时,将2D-DCT分离,使用左乘、右乘的方法,是存在快速算法的,而非结构化字典,只能硬乘,因此没有快速算法。当然为了解决这个问题,也会向非结构化字典内注入结构化因素,从而提高运算速度。

关于2D-DCT字典和克罗内克积以及二维字典的separable特性的个人理解相关推荐

  1. python之请求报文对比(假定最多二维字典)

    两段请求报文,判断不一样的key和value,只判断d2里和d1不同的值,和全部不同的key ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小 ...

  2. Python 中的“二维”字典 (two-dimension dictionary)

    Python 中的dict可以实现迅速查找.那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候.2D dict 可以通过 dict_2d = {'a': {'a': ...

  3. Python 二维字典定义

    初始化二维字典 二维字典形如, 值为字典: C={"a": {"b": {2}}, "b": {"c": {1}}} f ...

  4. python二维字典简单赋值取值

    python二维字典简单赋值取值 一维字典 二维字典 访问二维字典 字典和列表的区别 小白一个,记录python二维字典的学习 一维字典 字典是用花括号来定义的,比如 dict = {'姓名':'汪汪 ...

  5. 坐标系转换--二维四参数大地坐标系转换模型变换关系理解

    二维四参数空间直角坐标系转换模型变换关系理解 [ X 2 Y 2 ] = [ T x T y ] + ( 1 + m ) [ cos ⁡ α − sin ⁡ α sin ⁡ α cos ⁡ α ] [ ...

  6. Python二维字典的几个小例子

    # encoding:utf-8 # 在二维dict中,最外层的key不能相同,但是不同外层的key的里层的key是可以相同的 d={'a':{'b':1},'c':{'b':2}} print(d[ ...

  7. 二维dct变换例题_matlab进行二维DCT变换和二维DCT反变换

    题目: matlab进行二维DCT变换和二维DCT反变换 在Matlab中,函数dct2 和函数idct2分别用于进行二维DCT变换和二维DCT反变换.下面以处理本次训练图像为例说明该余弦正反变换在M ...

  8. 二维数组数和指针操作的理解

    #include<string.h> #include <stdio.h> int main(void) {int a[4][2] = { { 2,4 },{ 6,8 },{ ...

  9. c++ 二维数组_C|数形结合理解数组指针、指针数组、一级指针来遍历二维数组

    二维数组本质是也是线性存储的一维数组,各元素都是相对于基地址(首地址)的偏移,只是逻辑上的维度区分而已.或者可以理解为数组的数组,也就是说,n维数组的元素是一个n-1维数组. 需要注意的是,多维数组名 ...

最新文章

  1. Charles 从入门到精通
  2. 计算机应用基础教学实践活动,计算机应用基础与中职数学课程融合教学实践.doc...
  3. AES算法相关数学知识 - 素域学习
  4. XStream生成的XML中带class属性,去掉class属性
  5. 阿里巴巴开源通用机器学习算法平台Alink
  6. python实现人脸识别比对_人脸识别并比对实现(基于face_recognition)
  7. (四)比特币时间序列数据的AI预测
  8. 二维数组中最大连通子数组
  9. javascript 计算后结果失精度的问题解决
  10. ActiveMQ学习-Network connectors JAVA代码实现
  11. synchornized实现原理
  12. 最新手机号正则表达式验证方法(scala版)
  13. win7访问linux共享没有权限设置,局域网共享时提示:你没有权限访问,请与网络管理员联系...
  14. Windows Style Builder一些路径分享-2022.8.21(不定期更新)
  15. simple craft system
  16. 小程序页面传值的方式
  17. 引用参考文献标准格式
  18. 单机模式运行hadoop,来自《Hadoop权威指南》
  19. 北方民族大学计算机科学与导论试题,2016秋计算机导论(北方民族大学 张春梅)...
  20. WhatsApp Business API解读

热门文章

  1. thingsboard 编译及分析
  2. 学计算机要数学和英语怎么说,高中数学和英语有点恼火。但本人大学想学计算机,就是不知道英语和数学与计算机专业有什么必要联络吗?...
  3. 「π」里藏着所有人的银行卡密码和生日?
  4. 一文搞懂 Cocos Creator 3.x 坐标转换!建议收藏
  5. R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)
  6. IntelliJ idea中集成多个git项目模块
  7. 洲际酒店优悦会精英会籍延长12个月;美素佳儿合作京东超市力保宝宝口粮 | 美通企业日报...
  8. 2018第七届CodeVita国际编程大赛
  9. A new deep transfer learning network based on convolutional auto-encoder for mechanical fault diagno
  10. 香港深水埗将办新春美食节 助青年一尝创业滋味