博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zigzag扫描Matlab实现
阅读量:3897 次
发布时间:2019-05-23

本文共 772 字,大约阅读时间需要 2 分钟。

Zigzag扫描的Matlab实现

Zigzag扫描

Zigzag扫描在图像处理中占有重要的位置,比如说在JPEG、MPEG压缩领域,数字图像置乱,数字水印中都有应用,由于学习需要,需要对图像进行Zigzag扫描,无奈网上的代码方法都是相同的,即使用一个已经定义好扫描顺序的矩阵去进行扫描,毫无通用性可言,所以自己通过Matlab实现了通用性的Zigzag扫描程序,现将代码贴上,以8x8的矩阵为例:

clear all;

clc;
a=[1:64];
a=reshape(a,[8 8]);
a=a’;
%a是8x8的数组 下面开始zigzag扫描
b=zeros(1,64);
i=1;
j=1;
k=1;
while(i ~= 8 || j ~= 8)
if i == 8
b(k)=a(i,j)-1;
k=k+1;
j=j+1;
while(j~=8)
b(k)=a(i,j)-1;
k=k+1;
i=i-1;
j=j+1;
end
elseif j == 8
b(k)=a(i,j)-1;
k=k+1;
i=i+1;
while(i~=8)
b(k)=a(i,j)-1;
k=k+1;
i=i+1;
j=j-1;
end
elseif(i == 1)
b(k)=a(i,j)-1;
k=k+1;
j=j+1;
while(j ~= 1)
b(k)=a(i,j)-1;
k=k+1;
i=i+1;
j=j-1;
end
elseif j == 1
b(k)=a(i,j)-1;
k=k+1;
i=i+1;
while(i ~= 1)
b(k)=a(i,j)-1;
k=k+1;
i=i-1;
j=j+1;
end
end
end
b(k)=a(i,j)-1;
b=reshape(b,[8 8]);
b=b’;

可能需要大家调一下缩进。

转载地址:http://hiyen.baihongyu.com/

你可能感兴趣的文章
C++项目中的extern "C" {}
查看>>
(转)C++中extern “C”含义深层探索
查看>>
【日常小记】linux中强大且常用命令:find、grep
查看>>
Linux多线程编程(不限Linux)
查看>>
C/C++内存泄漏及检测
查看>>
C中的继承和多态
查看>>
linux修改ssh端口和禁止root远程登陆设置
查看>>
What really happens when you navigate to a URL
查看>>
偶遇with ties
查看>>
linux 编译指定库、头文件的路径问题
查看>>
使用gdb调试运行时的程序小技巧
查看>>
linux后端服务程序之信号处理
查看>>
Padding也要小心
查看>>
linux异步IO编程实例分析
查看>>
小组开发环境搭建: apache+ftp+cvs+samba
查看>>
Learning C with gdb
查看>>
不可不知的json库
查看>>
JSON格式解析和libjson使用简介
查看>>
关于Json格式的理解
查看>>
c语言解析json数据
查看>>