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

zigzag扫描matlab,ZIGZAG扫描的MATLAB实现转自阿须数码,用MATLAB实现MPEG中的ZIG-ZAG扫描。觉得有点研究价值,实现的方法也很巧妙。下面给一个参照MPEG提供的方法:===functionb=zigzag(a)%这是参照UniversityofCalifornia提供的MPEG源代码的基础上编制的。%Copyright(c)1995TheRegentsoftheUniversityofC…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

转自阿须数码,用MATLAB实现MPEG中的 ZIG-ZAG 扫描。觉得有点研究价值,实现的方法也很巧妙。

下面给一个参照MPEG提供的方法:

===

function b=zigzag(a)

% 这是参照 University of California 提供的 MPEG 源代码的基础上编制的。

% Copyright (c) 1995 The Regents of the University of California.

[n,m]=size(a);

if(n~=8 & m~=8)

error(‘Input array is NOT 8-by-8’);

end

% Set up array for fast conversion from row/column coordinates to

% zig zag order. 下标从零开始,因为是从MPEG的C代码拷贝过来的

zigzag = [ 0, 1, 8, 16, 9, 2, 3, 10, …

17, 24, 32, 25, 18, 11, 4, 5, …

12, 19, 26, 33, 40, 48, 41, 34, …

27, 20, 13, 6, 7, 14, 21, 28, …

35, 42, 49, 56, 57, 50, 43, 36, …

29, 22, 15, 23, 30, 37, 44, 51, …

58, 59, 52, 45, 38, 31, 39, 46, …

53, 60, 61, 54, 47, 55, 62, 63];

zigzag = zigzag + 1;  % 下标加1,符合MATLAB的下标习惯

aa = reshape(a,1,64); % 将输入块变成1×64的向量

b = aa(zigzag); % 对 aa 按照查表方式取元素,得到 zig-zag 扫描结果

===

程序运行结果:

?a=magic(8)

a =

64     2     3    61    60     6     7    57

9    55    54    12    13    51    50    16

17    47    46    20    21    43    42    24

40    26    27    37    36    30    31    33

32    34    35    29    28    38    39    25

41    23    22    44    45    19    18    48

49    15    14    52    53    11    10    56

8    58    59     5     4    62    63     1

?b=zigzag(a)

b =

Columns 1 through 12

64     9     2     3    55    17    40    47    54    61    60    12

Columns 13 through 24

46    26    32    41    34    27    20    13     6     7    51    21

Columns 25 through 36

37    35    23    49     8    15    22    29    36    43    50    57

Columns 37 through 48

16    42    30    28    44    14    58    59    52    45    38    31

Columns 49 through 60

24    33    39    19    53     5     4    11    18    25    48    10

Columns 61 through 64

62    63    56     1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198606.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Qt编写GIF录屏工具(开源)「建议收藏」

    Qt编写GIF录屏工具(开源)「建议收藏」在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基本上都支持gif动图,一般一个5秒左右的gif,800*600分辨率,可以很好的控制在500KB内,这样就比较完美的支持各大网站上传动图。最开始使用的是ScreenGif.exe,用了很久,感觉还可以,后面一…

    2022年9月20日
  • stm32之IIC应用实例(AT24C02芯片,硬件和软件方式驱动)「建议收藏」

    stm32之IIC应用实例(AT24C02芯片,硬件和软件方式驱动)「建议收藏」目录1.物理层:2.协议层:3.数据的传输:4.程序设计写完回头一看发现字数还不少,如果你觉得文字太枯燥,那么可以跳到后面程序设计,直接动手做实验。如果想仔细了解关于IIC协议的细节,那么希望你能慢慢把看完,看完后一定有所收获。概述:IICBUS(InterIntegratedCircuitBUS,内部集成电路总线)是飞利浦公司推出的二线制串行扩展总线;在IIC总线…

    2022年10月25日
  • connectionstring mysql,用于将3个主节点连接到MySQL的ConnectionString「建议收藏」

    connectionstring mysql,用于将3个主节点连接到MySQL的ConnectionString「建议收藏」BackgroudIamdevelopinga.netproject,whichworkswithEF6andMySQLDB.ForHighAvailability,IamusingGaleracluster,soIhave3MySQLMasternodesupandrunning:master1,master2andmaster…

    2022年7月12日
  • LOAM 原理及代码实现介绍[通俗易懂]

    LOAM 原理及代码实现介绍[通俗易懂]LOAM介绍paper:《LidarOdometryandMappinginReal-time》LOAM整体框架:将定位与建图分开运行,高频位姿估计+低频优化建图->实现实时,低计算量,低漂移。数据提取及处理:根据点的曲率c来将点划分为不同的类别(边/面特征或不是特征),在每一个sweep中,根据曲率对点进行排序,来作为评价局部表面平滑性的标准。一个sweep指完成一次完整的扫描,一次sweep分为多个scan,每一次sweep的雷达位姿定义为为这一sweep起始时的状态

    2022年9月11日
  • 【java实现网址转换为二维码】「建议收藏」

    【java实现网址转换为二维码】「建议收藏」我们可以实现图片二维码转换为网址,或者将网址转换为伪二维码(与普通二维码有区别,因为没有定位点,转换成的二维码只包含信息)。

    2022年9月3日
  • 什么是信息熵?香农利用信息熵回答了什么问题_香农定律

    什么是信息熵?香农利用信息熵回答了什么问题_香农定律第九个知识点:香农(Shannon)定义的熵和信息是什么这是计算机理论的最后一篇.我们讨论信息理论的基础概念,什么是香农定义的熵和信息.信息论在1948年被ClaudeE.Shannon建立.信

    2022年8月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号