对图像划分为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)相关推荐

  1. MATLAB DCT变换原理和源码

    图像处理中常用的正交变换除了傅里叶变换外,还有其他一些有用的正交变换,其中离散余弦就是一种.离散余弦变换表示为DCT( Discrete Cosine Transformation),常用于图像处理和 ...

  2. 图片相似度计算:深入理解DCT变换以及感知哈希

    缘起 Android上硬件编解码一直是个老大难问题,就解码来说,硬解码本身并不困难,只要按照MediaCodec的流程开发即可.但由于系统碎片化,硬件规格不一致,硬件解码会到黑屏,花屏,绿屏之类的显示 ...

  3. dct变换java_DCT变换的基函数与基图像(图)

    DCT变换的基函数与基图像(图) 07-25栏目:技术 TAG:dct变换 dct变换 1. 图像变换的基函数 在图像的二维变换中,如果图像本身是正方形的(图像的长与宽相等),并且图像的变换核满足课可 ...

  4. 离散余弦变换java实现_离散余弦变换(含源码)

    图像处理中常用的正交变换除了傅里叶变换外,还有其他一些有用的正交变换,其中离散余弦就是一种.离散余弦变换表示为DCT( Discrete Cosine Transformation),常用于图像处理和 ...

  5. 基于MATLAB的数字图像K-L变换,基于DCT变换的图像编码方法研究

    分类号 密级 UDC注l 学 位 论 文 基于DCT变换的图像编码方法研究 (题名和副题名) 朱剑英 (作者姓名 指导教师姓名 副教授 中诱学位级别硕士 沦_义提交日期2004.1 专.业名称 通信与 ...

  6. 图像去噪 使用dct变换进行去噪

    因为噪声往往是高频部分,可以将图像转换到频域,进行高频处理: 把高频部分虑掉. <span style="font-size:18px;"><strong> ...

  7. 【转】DCT变换的透彻解析

    3.离散余弦变换 DCT 将图像从色彩域转换到频率域,常用的变换方法有: DCT变换的公式为: f(i,j) 经 DCT 变换之后,F(0,0) 是直流系数,其他为交流系数. 还是举例来说明一下. 8 ...

  8. H264中DCT变换,量化,反量化,反DCT变换

    H.264中采用的是整数DCT变换,在实现的时候,该变换和量化又杂糅在一起,那么这些错综复杂的关系究竟是怎样纠缠的呢?在参考H.264乐园论坛会员cs1860wd的帖子和H.264 and MPEG- ...

  9. SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。...

    在优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码) 一文中,我们曾经优化过基于DCT变换的图像去噪算法,在那文所提供的Demo中,处理一副1000*1000左右的灰度噪音图像耗时 ...

最新文章

  1. 华为harmonyos和ios,华为EMUI正式更名为HarmonyOS,看来华为真的是孤注一掷了
  2. [Codeforces1137D]Cooperative Game
  3. 定位相关论文-A Novel Pedestrian Dead Reckoning Algorithm for Multi-Mode Recognition Based on Smartphones
  4. 手机数控模拟器安卓版_车床模拟器2手机版下载-车床模拟器2游戏 v2.5.0安卓版_5577安卓网...
  5. java之Map和Collection
  6. 音视频技术开发周刊 | 144
  7. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
  8. 《Linus Torvalds自传》摘录
  9. 上传图片在浏览器可以正常查看 在手机不显示_自己拥有一台服务器可以做哪些很酷的事情...
  10. 一亿像素!小米CC9 Pro明日正式首卖:2799元起
  11. mysql 树形结构_Mysql安装:基础入门知识
  12. 第四篇、Tomcat 集群
  13. JAVA读注册表获取My Document等目录
  14. PaddleOCR二次全流程——1. 确定字体
  15. 什么是机器学习(Machine Learning)? |李宏毅机器学习【1】
  16. eas-dep添加白名单
  17. 笔记本无法找到WiFi信号,需要手动设置wlan autoconfig的解决办法
  18. Python 第八篇:异常处理、Socket语法、SocketServer实现多并发、进程和线程、线程锁、GIL、Event、信号量、进程间通讯...
  19. [python] NetworkX实例
  20. 4月全球“.网址”域名总量排行榜:ZDNS份额仍超99%

热门文章

  1. Unity的C#编程教程_61_委托和事件 Delegates and Events 详解及应用练习
  2. 将字符串中的小写字母转换为相应的大写字母
  3. html和css实现导航栏样式
  4. java 动态分区 链表_大二作业——操作系统实验——C语言用双向链表,模拟实现动态分区式存储管理...
  5. java scanner的hasnext,Java Scanner hasNext()方法
  6. 线性模型之二:线性回归模型性能的评估(残差图、MSE与R2)
  7. linux如何查看ip
  8. 数据库函数依赖与候选码求解
  9. OpenGL API - 笔记汇总
  10. 什么,BOM指的是物料清单?