z型编码

编程入门 行业动态 更新时间:2024-10-09 06:26:00

z型编码

z型编码

z型编码在图像处理中是十分重要的,进而突出学习其思想的重要性。该篇旨在讨论其思想,实现其效果,在算法的效率上没有过多的考虑。

其思想过程如下所示:

z字形编排程序:
                    0  1  2  3  4 
                    8  9  10 12 13     z编排 
                    17 18 19 20 21  -----------> 0->1->8->17->9->2->3->10->18->25->33->26->19->12->4->13 
                    25 26 27 28 29                  ->20->27->34->35->28->21->29->36->37 
                    33 34 35 36 37 
    对于目标矩阵 matrix[i][j]:
      1、 j为偶数,且i = 0 或者 i = 7,则水平相右移一格
      2、 数组i为奇数,且j = 0或者 j = 7,则向下移一格 
      3、 i + j为偶数时,则右上移一格,反之,则左下移一格 

源代码:

#include <iostream> 
#include <cstdio>
#include <iomanip>using namespace std;
const int SIZE = 8;int main(void){int matrix[SIZE][SIZE] = {0};int result[SIZE][SIZE] = {0};int i,j;int *p;p = &matrix[0][0];for(i = 0;i < SIZE*SIZE;i ++)*p++ = i;cout<<"init array:"<<endl;for(i = 0;i < SIZE;i ++){cout<<"      ";for(j = 0;j < SIZE;j ++){cout<<setw(4)<<*(*(matrix + i) + j);}cout<<endl;}i = j = 0;for(int x = 0;x < SIZE;x ++)for(int y = 0;y < SIZE;y ++){*(*(result + x) + y) = *(*(matrix + i) + j);if(j%2 == 0 && (i == 0||i == 7))// matrix[i][j]数组j为偶数,且i = 0 或者 i = 7,则水平相右移一格 {j ++;continue;}if(i%2 != 0 && (j == 0||j == 7))//matrix[i][j]数组i为奇数,且j = 0或者 j = 7,则向下移一格 {i ++;continue;}else if((i + j) % 2 == 0)//matrix[i][j]数组i + j为偶数时,则右上移一格,反之,则左下移一格 {i --;j ++;continue;}else{i ++;j --;continue;}}cout<<endl<<"after zigzag arragement:"<<endl;for(i = 0;i < SIZE;i ++){cout<<"      ";for(j = 0;j < SIZE;j ++)cout<<setw(4)<<*(*(result + i) + j);cout<<endl;}return 0;
} 

 

更多推荐

z型编码

本文发布于:2024-02-28 08:13:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768902.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!