DCT变换(JAVA)
对图像划分为8*8的像素块并进行DCT变换
经过上一篇博文(http://blog.csdn.net/qq_29859497/article/details/72860023)将一张图片进行转换颜色空间并将各个通道进行分离后,我们可以取得各个通道如亮度Y、饱和度Cb、色度Cr通道,对他们进行DCT变换处理。
DCT变换在当前的图像分析已经压缩领域有着极为广大的用途,我们常见的JPEG静态图像编码以及MJPEG、MPEG动态编码等标准中都使用了DCT变换。相应公式可自行百度~
DCT变换(JAVA):
public static double[][] DCTconvertion(double[][] f) { int sizeX = f.length;int sizeY = f[0].length;double[][] F = new double[sizeX][sizeY];int u, v, x, y;for(int xx = 0; xx < sizeX; xx += 8){for(int yy = 0; yy < sizeY; yy += 8){ for(int u1 = xx; u1 < xx + 8; u1++){u = u1 - xx;for(int v1 = yy; v1 < yy + 8; v1++){v = v1 - yy;double subSum = 0.0;for(int x1 = xx; x1 < xx + 8; x1++){x = x1 - xx;for(int y1 = yy; y1 < yy + 8; y1++){y = y1 - yy;subSum += Math.cos(((2.0*x + 1.0)*u*Math.PI)/(16.0)) * Math.cos(((2.0*y + 1.0)*v*Math.PI)/(16.0)) * f[x1][y1];;}}F[u1][v1] = Math.max(Math.min(((Cfunc(u) * Cfunc(v)) / 4.0) * subSum, 1024.0), -1024.0);}} }} return F;
}
可用一个二维数组保存DCT变换后的数据,当然可以在控制台将数据打印出来,打印二维数组printArray方法:
public static void printArray(int[][] F){int X = F.length;int Y = F[0].length;for(int y = 0; y < Y; y++){for(int x = 0; x < X; x++){System.out.print(F[x][y] + " ");System.out.print("\t");}System.out.println("");} System.out.println("");}
运行效果如下图:
(o゜▽゜)o☆[BINGO!]这里是小屋,欢迎戳(o゜▽゜)o☆[BINGO!]
DCT变换(JAVA)相关推荐
- MATLAB DCT变换原理和源码
图像处理中常用的正交变换除了傅里叶变换外,还有其他一些有用的正交变换,其中离散余弦就是一种.离散余弦变换表示为DCT( Discrete Cosine Transformation),常用于图像处理和 ...
- 图片相似度计算:深入理解DCT变换以及感知哈希
缘起 Android上硬件编解码一直是个老大难问题,就解码来说,硬解码本身并不困难,只要按照MediaCodec的流程开发即可.但由于系统碎片化,硬件规格不一致,硬件解码会到黑屏,花屏,绿屏之类的显示 ...
- dct变换java_DCT变换的基函数与基图像(图)
DCT变换的基函数与基图像(图) 07-25栏目:技术 TAG:dct变换 dct变换 1. 图像变换的基函数 在图像的二维变换中,如果图像本身是正方形的(图像的长与宽相等),并且图像的变换核满足课可 ...
- 离散余弦变换java实现_离散余弦变换(含源码)
图像处理中常用的正交变换除了傅里叶变换外,还有其他一些有用的正交变换,其中离散余弦就是一种.离散余弦变换表示为DCT( Discrete Cosine Transformation),常用于图像处理和 ...
- 基于MATLAB的数字图像K-L变换,基于DCT变换的图像编码方法研究
分类号 密级 UDC注l 学 位 论 文 基于DCT变换的图像编码方法研究 (题名和副题名) 朱剑英 (作者姓名 指导教师姓名 副教授 中诱学位级别硕士 沦_义提交日期2004.1 专.业名称 通信与 ...
- 图像去噪 使用dct变换进行去噪
因为噪声往往是高频部分,可以将图像转换到频域,进行高频处理: 把高频部分虑掉. <span style="font-size:18px;"><strong> ...
- 【转】DCT变换的透彻解析
3.离散余弦变换 DCT 将图像从色彩域转换到频率域,常用的变换方法有: DCT变换的公式为: f(i,j) 经 DCT 变换之后,F(0,0) 是直流系数,其他为交流系数. 还是举例来说明一下. 8 ...
- H264中DCT变换,量化,反量化,反DCT变换
H.264中采用的是整数DCT变换,在实现的时候,该变换和量化又杂糅在一起,那么这些错综复杂的关系究竟是怎样纠缠的呢?在参考H.264乐园论坛会员cs1860wd的帖子和H.264 and MPEG- ...
- SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。...
在优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码) 一文中,我们曾经优化过基于DCT变换的图像去噪算法,在那文所提供的Demo中,处理一副1000*1000左右的灰度噪音图像耗时 ...
最新文章
- 华为harmonyos和ios,华为EMUI正式更名为HarmonyOS,看来华为真的是孤注一掷了
- [Codeforces1137D]Cooperative Game
- 定位相关论文-A Novel Pedestrian Dead Reckoning Algorithm for Multi-Mode Recognition Based on Smartphones
- 手机数控模拟器安卓版_车床模拟器2手机版下载-车床模拟器2游戏 v2.5.0安卓版_5577安卓网...
- java之Map和Collection
- 音视频技术开发周刊 | 144
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
- 《Linus Torvalds自传》摘录
- 上传图片在浏览器可以正常查看 在手机不显示_自己拥有一台服务器可以做哪些很酷的事情...
- 一亿像素!小米CC9 Pro明日正式首卖:2799元起
- mysql 树形结构_Mysql安装:基础入门知识
- 第四篇、Tomcat 集群
- JAVA读注册表获取My Document等目录
- PaddleOCR二次全流程——1. 确定字体
- 什么是机器学习(Machine Learning)? |李宏毅机器学习【1】
- eas-dep添加白名单
- 笔记本无法找到WiFi信号,需要手动设置wlan autoconfig的解决办法
- Python 第八篇:异常处理、Socket语法、SocketServer实现多并发、进程和线程、线程锁、GIL、Event、信号量、进程间通讯...
- [python] NetworkX实例
- 4月全球“.网址”域名总量排行榜:ZDNS份额仍超99%
热门文章
- Unity的C#编程教程_61_委托和事件 Delegates and Events 详解及应用练习
- 将字符串中的小写字母转换为相应的大写字母
- html和css实现导航栏样式
- java 动态分区 链表_大二作业——操作系统实验——C语言用双向链表,模拟实现动态分区式存储管理...
- java scanner的hasnext,Java Scanner hasNext()方法
- 线性模型之二:线性回归模型性能的评估(残差图、MSE与R2)
- linux如何查看ip
- 数据库函数依赖与候选码求解
- OpenGL API - 笔记汇总
- 什么,BOM指的是物料清单?