matlab zigzag算法,ZIGZAG扫描的MATLAB实现
用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); % 将输入块变成1x64的向量
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
(hunnish)
matlab zigzag算法,ZIGZAG扫描的MATLAB实现相关推荐
- 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 626期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab全变分算法图像去噪[含Matlab源码 626期] 获取代码方式2: 付费专栏Matlab图像处理(初级版) ...
- 【图像分割】基于matlab萤火虫算法图像分割【含Matlab源码 2136期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像分割]基于matlab萤火虫算法图像分割[含Matlab源码 2136期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- matlab 腐蚀算法,【zz】matlab 腐蚀膨胀算法
1.图像膨胀的Matlab实现: 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象.结构元素对象可以是strel函数返回的对象,也可 ...
- matlab imresize算法详解,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同
为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同?今年 4 月,我在依照 MATLAB 代码自己写一个卷积神经网络 C++ 实现的过程中,就发现了这个问题,不过那 ...
- matlab级联算法,IIR滤波器的MATLAB实现(级联型)
在MATLAB中给定级联型系统系数,由扩展函数casfilter实现IIR的级联形式. 例5.2 系统函数 ,用级联型结构实现. 解:程序清单如下: % 2015-1-28 % ycb_p158_5_ ...
- 最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究
BP 算法的改进在M a tlab 的实现研究 姚文俊 (中南民族大学电子信息工程学院 湖北武汉 430074) 摘 要:利用M atlab 中的神经网络工具箱提供的丰富网络学习和训练函数,对BP 网 ...
- matlab ekf算法讲解,EKF_AHRS(matlab实现)
[实例简介] [实例截图] [核心代码] EKF_AHRS-master ├── EKF-AHRS │ ├── EKF_AHRS.m │ ├── Get_Init_AHRS.m │ ├── ...
- MATLAB常用算法与应用实例分享来袭!
小天从大学开始接触数学建模,便开启资料收集功能.经过近几年的积累和沉淀,再加上对数学建模领域的深入研究,收集整理了丰富的数学建模资料,内容涵盖"MATLAB常用算法"," ...
- 【MVO TSP】基于matlab灰狼算法求解旅行商问题【含Matlab源码 1327期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab灰狼算法求解旅行商问题[含Matlab源码 1327期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
最新文章
- 浅析网站页面设计需要注意哪些细节问题?
- 转:Ubuntu 开机加载路由设置
- 阿里内网热搜开发者工具在线教程推荐
- ubuntu启动后反复进入initramfs
- listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法
- vue项目实现登录(sessionStorage 存储 token)
- vc++ 6.0 堆栈_在C ++中使用链接列表实现堆栈
- Linux进程间通信:共享内存与管道
- 【面向对象】面向对象程序设计测试题7-对象之间的has-a/many关系测试题
- 字典中文乱码怎么处理_CATIA教程技巧和二次开发宏:我的零件有很多的几何体,但是几何体的名称是乱的,还有乱码,影响我的后续操作,我该怎么处理?...
- 去掉字符串首尾逗号_去除字符串首尾空格和特殊字符
- 81相似标准形02——初等变换、初等矩阵、相抵 (等价)、相抵标准形
- 全国计算机演示文稿,全国计算机等级考试二级office演示文稿题目[文].pdf
- 重构第0天--重构的理解
- 大明龙权登录服务器信息解析失败,Steam第三方授权登录异常 《绝地求生》国服绑定中招...
- 解决dos窗口启动Tomcat乱码问题
- 中控考勤机重置考勤机密码方法
- 蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上
- 装上你就离不开的桌面软件:透明任务栏/显示网速/内存清理/温度监控
- 华三路由器ER3260 ipsec配置
热门文章
- LeetCode 1431. 拥有最多糖果的孩子
- java socket 实现增删改查 + 在线答题小案例
- hadoop单机配置(非分布式)
- 学生用计算机怎么用视频,19.使用ZOOM作为上课视频、语音和屏幕分享工具,具体对学生的电脑和宽带有什么软件和硬件要求?...
- ajax官方api,yangguozhong
- python+OpenCV检测条形码
- python压缩文件
- android之常用知识点(一)
- s3cmd安装及使用
- 重庆高职高专计算机排名,重庆十大大专排名(含分数线2021年参考)-重庆最好的全日制专科学校...