在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:

链接中有直接可执行的java文件

二维数组扫描后变成一维数组

public static int[] two2one(final int input[][]) {int n = 0, x = 0, y = 0;int []output=new int [N*N];output[n] = input[x][y];n++;while (true) {if (x == 0 && y <= N - 2) {y++;output[n] = input[x][y];n++;while (true) {x++;y--;output[n] = input[x][y];n++;if (y == 0) {break;}}}if (y == 0 && x <= N - 2) {x++;output[n] = input[x][y];n++;while (true) {x--;y++;output[n] = input[x][y];n++;if (x == 0) {break;}}}if (x == N - 1 && y < N - 2) {y++;output[n] = input[x][y];n++;while (true) {x--;y++;output[n] = input[x][y];n++;if (y == N - 1) {break;}}}if (y == N - 1 && x < N - 2) {x++;output[n] = input[x][y];n++;while (true) {x++;y--;output[n] = input[x][y];n++;if (x == N - 1) {break;}}}if (x == N - 1 && y == N - 2) {y++;output[n] = input[x][y];break;}}// whilereturn output;}


扫描后的一维数据还原成二维数组

 public static int[][] one2two(final int input[]) {int n = 0, x = 0, y = 0;int [][]output=new int [N][N];output[x][y] = input[n];n++;while (true) {if (x == 0 && y <= N - 2) {y++;output[x][y] = input[n];n++;while (true) {x++;y--;output[x][y] = input[n];n++;if (y == 0) {break;}}}if (y == 0 && x <= N - 2) {x++;output[x][y] = input[n];n++;while (true) {x--;y++;output[x][y] = input[n];n++;if (x == 0) {break;}}}if (x == N - 1 && y < N - 2) {y++;output[x][y] = input[n];n++;while (true) {x--;y++;output[x][y] = input[n];n++;if (y == N - 1) {break;}}}if (y == N - 1 && x < N - 2) {x++;output[x][y] = input[n];n++;while (true) {x++;y--;output[x][y] = input[n];n++;if (x == N - 1) {break;}}}if (x == N - 1 && y == N - 2) {y++;output[x][y] = input[n];break;}}// whilereturn  output;}

java实现zigzag扫描相关推荐

  1. zigzag扫描matlab,ZIGZAG扫描的MATLAB实现 | 学步园

    转自阿须数码,用MATLAB实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这 ...

  2. 对二维数组进行Zig-Zag扫描(C++)

    对二维数组进行Zig-Zag扫描(C++),先自定义了一个类,类中有个函数Run()来实现这个扫描过程,二维数组是动态分配空间以及随机赋值的. 下图是Zig-Zag扫描方式: CZigZag.h: # ...

  3. matlab zigzag算法,ZIGZAG扫描的MATLAB实现

    用MATLAB实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这是参照 Uni ...

  4. java 定时程序扫描表_Java扫描程序类

    java 定时程序扫描表 Scanner class in Java (java.util.Scanner) was introduced in Java 1.5 as a simple text s ...

  5. zigzag扫描matlab,ZIGZAG扫描的MATLAB实现

    用matlab实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这是参照 Uni ...

  6. matlab zigzag算法,MATLAB 实现zigzag扫描(z字形扫描)

    今天在做多媒体作业的时候需要实现JPEG压缩,其中一步就是将量化后的块做zigzag扫描.我在网上找了很久,发现反复流传的就一份MATLAB代码,无奈这份代码跑起来结果和我预料的不一致,于是进行了修改 ...

  7. 矩阵宏观调度:Zigzag扫描打印矩阵matrix,图像工程的一种编码

    矩阵宏观调度:Zigzag扫描打印矩阵matrix,图像工程的一种编码 提示:极其重要的矩阵处理技巧,矩阵下标的宏观调度 文章目录 矩阵宏观调度:Zigzag扫描打印矩阵matrix,图像工程的一种编 ...

  8. MATLAB中的zigzag,ZIGZAG扫描的MATLAB实现

    转自阿须数码,用MATLAB实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这 ...

  9. java web 漏洞扫描工具_java编写web漏洞扫描系列 一、GET/POST

    今天是java编写漏洞扫描工具系列一,在整个系列中我将以案例驱动方式进行,从基本的请求,到常规漏洞扫描,Burp插件,调用SQLmap api,整合burp+sqlmap(Web平台),漏洞扫描平台( ...

最新文章

  1. Kubernetes实战[1]: 基于kubernetes构建Docker集群环境实战
  2. 向上取整的方法_PHP取整方法小总结
  3. java线程实例题_java线程相关试题实例源码代码
  4. 鸡蛋中营养和脂质含量与降低LDL的食物
  5. java用中根后根序列构造二叉树,106. 从中序与后序遍历序列构造二叉树
  6. dev c++ 代码补全_学习干货——玩转DEV—C++
  7. 【Interfacenavigation】通过《include/》重新使用布局(9)
  8. Windows的一些网络设置
  9. Fiddler中文版 软件分享(亲测可用!)
  10. 万能启动的最后的传说:UD三分区法部署教程!UD加UEFI!
  11. vue 创建图片坐标点_Vue Echarts 显示地图且根据坐标设置标注点
  12. 系统辨识(五):系统辨识的最小二乘法基础
  13. 淘宝婴儿商品销量分析
  14. 小白软件帮手(xbrjbs)一个专业安装破解软件的公众号
  15. IOC实现-Unity
  16. 爬虫技术:scrapy 知识点一
  17. php加cnzz,vue项目中添加cnzz统计
  18. Onedrive创建软链接同步指定文件夹
  19. <C++>详解类对象作为类成员时调用构造和析构的时机及静态成员解释
  20. 【目标检测】SSD(Single Shot MultiBox Detector)的复现

热门文章

  1. w11 php 环境变量
  2. WIN10+CUDA10.1+cudnn+Anaconda安装TensorflowGPU版本
  3. 为什么k8s天然适合微服务?
  4. idea中摸鱼插件_上班防摸鱼插件(知乎页面)
  5. 超融合架构和服务器虚拟化是什么关系?主流超融合厂商服务器虚拟化产品对比分析
  6. mysql错误码1003_MySQL错误解决10038
  7. Python实现 鱼群算法库
  8. root 启动mysql_非root用户随开机而启动mysql服务
  9. H5企业微信如何返回到菜单页?
  10. 【PAT甲级】1142 Maximal Clique