首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DCT 离散余弦变换

DCT变换本身是无损的且具有对称性。对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零。...将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。...定义 一维 DCT 变换 image.png 其中,f(i)为原始的信号,F(u)是DCT变换后的系数,N为原始信号的点数,c(u)可以认为是一个补偿系数,可以使DCT变换矩阵为正交矩阵。...二维 DCT 变换 image.png 其中,f(i,j)为原始的信号,F(u,v)是DCT变换后的系数,N为原始信号的点数,c(u),c(v)可以认为补偿系数,可以使DCT变换矩阵为正交矩阵。...在数字图像领域 JPEG 图像压缩使用了 DCT变换。 DCT同时也在音频信号处理,数字水印方面也发挥着各种作用。

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

DCT如此重要,作者当初竟然不知道?

如果你使用DCT对图像进行转换,AC系数包含了图像的更多细节。同时,如果把这些DCT系数应用于反向的2D-DCT,将得到原始系数。...DCT本身并不会压缩数据,它为随后的量化之类的操作,提供了一个良好的基础。 DCT是谁发明的? 第一个提出DCT的人是Nasir Ahmed。...DCT的实现简介 DCT有8种形态,我们通常所说的DCT,其实指的是DCT-II,其对应的反变换是DCT-III。...DCT-II、DCT-III的原始定义非常简单: 其中: X:X 是DCT输出 x:x 是DCT输入 k:k 是计算结果的输出数据索引, 从 0 to N−1 N:N  变换元素的数目 s:s是缩放函数...以H.264标准为例,它实际上是把DCT 变换和后续的量化放在了一起,以减轻DCT变换计算的复杂度,所以有时候看H.264的DCT变换系数,你甚至第一眼很难想象它其实是个DCT的变换;从H.264的时代开始

1.3K50

动态语言的灵活性是把双刃剑:以 Python 语言为例

): ifhigh_propability: sub_routine_no_change_dct(dct) else: sub_routine_will_change_dct(dct) 上述的代码很简单...,dct是一个dict,极大概率会调用一个不用修改dct的子函数,极小概率出会调用到可能修改dct的子函数。...当然,上述的代码简单到一眼就能看出问题,但在实际环境中,调用链有七八层,而且,在routine这个函数的doc里面,声明不会修改dct,该函数本身确实没有修改dct,但调用的子函数或者子函数的子函数没有遵守这个约定...中,对象的基本构造也是浅拷贝,例如 dct = ; dct1 = dict(dct) 正是由于浅拷贝与深拷贝本质上的区别,二者性能代价差异非常之大,即使对于被拷贝的对象来说毫无差异: import copy...有人说,那就通过python doc或者变量名来实现契约吧,比如: deffunc(dct_only_read): “”“param:dct_only_read will be onlyread,neverupate

1.3K70

【说站】Python dHash算法如何使用

Python dHash算法如何使用 说明 1、缩小图片:缩小到9*8,这样它就有72个像素点。 2、转换成灰度图。...实例 # -*- coding: utf-8 -*- # 利用python实现多种方法来实现图像识别   import cv2 import numpy as np from matplotlib import...变换  dct1 = cv2.dct(np.float32(gray1))  dct2 = cv2.dct(np.float32(gray2))  # 取左上角的8*8,这些代表图片的最低频率  # 这个操作等价于...c++中利用opencv实现的掩码操作  # 在python中进行掩码操作,可以直接这样取出图像矩阵的某一部分  dct1_roi = dct1[0:8,0:8]  dct2_roi = dct2[0:... = classify_aHash(img1,img2)  #degree = classify_pHash(img1,img2)  print degree  cv2.waitKey(0) 以上就是Python

43130

相似性︱python+opencv实现pHash算法+hamming距离(simhash)(三)

版的四部曲: LSH︱python实现局部敏感随机投影森林——LSHForest/sklearn(一) LSH︱python实现局部敏感哈希——LSHash(二) 相似性︱python+opencv...1、simhash 可参考:Python基础教程-python实现simhash算法实例详细介绍 Simhash的算法简单的来说就是,从海量文本中快速搜索和已知simhash相差小于k位的simhash...(具体算法见平均哈希算法步骤) 计算DCT:DCT把图片分离成分率的集合 缩小DCTDCT计算后的矩阵是32 * 32,保留左上角的8 * 8,这些代表的图片的最低频率 计算平均值:计算缩小DCT后的所有像素点的平均值...二、pHash算法python+opencv实现 参考自:opencv resize (C/C++/Python) 主要针对图像来进行解析。...变换 vis1 = cv2.dct(cv2.dct(vis0)) #cv.SaveImage('a.jpg',cv.fromarray(vis0)) #保存图片 vis1.resize

4.5K50

图片相似度识别:pHash算法

前面已经整理了aHash和dHash的算法原理和python代码(戳:图片相似度识别:aHash算法,图片相似度识别:dHash算法),今天来介绍hash三兄弟的最后一个——pHash。...(与aHash类似) 图片配对,计算汉明距离 2 DCT 一维DCT变换公式: ? f(i)为原始的信号,F(u)是DCT变换后的系数,N为原始信号的点数,c(u)是补偿系数。...二维DCT变换公式: ? 二维变换是在一维变换的基础上得来的,并且上述公式可以转化为 ? 此形式更方便计算。DCT变换是对称的,因此可以对经过DCT变换的图片进行还原操作。...3 Python实现 本例中依然计算以下两张图片的相似度: ? (image1) ? (image2) 完整算法 这里同步给出三种hash的完整代码,便于进行效果比较。...= cv2.dct(np.float32(gray)) dct_roi = dct[0:8, 0:8] avreage = np.mean(dct_roi)

6.6K10

写一只具有识别能力的图片爬虫

在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系。...32是一个较好的大小,这样方便DCT计算 转化为灰度图:把缩放后的图片转化为256阶的灰度图。...(具体算法见平均哈希算法步骤) 计算DCT:DCT把图片分离成分率的集合 缩小DCTDCT计算后的矩阵是32 * 32,保留左上角的8 * 8,这些代表的图片的最低频率 计算平均值:计算缩小DCT后的所有像素点的平均值...进一步减小DCT:大于平均值记录为1,反之记录为0. 得到信息指纹:组合64个信息位,顺序随意保持一致性。 最后比对两张图片的指纹,获得汉明距离即可。...这里给出别人的DCT的介绍和计算方法(离散余弦变换的方法) DCT的维基百科 https://zh.wikipedia.org/wiki/%E7%A6%BB%E6%95%A3%E4%BD%99%E5%BC

1.8K50
领券