⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ezw.h

📁 该程序把数字图像处理与小波变换结合起来
💻 H
字号:
/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
/* EZW2 - Embedded Zerotree Wavelet Coder
 * 
 * Author : Mow-Song, Ng
 * Data   : 20-07-2002
 *
 * Last update : 31-08-2002
 *
 * A large portion/idea of the codes come from:
 * C. Valens - Embedded Zerotree Wavelet Encoder Tutorial.
 * G. Davis - Baseline Wavelet Transform Coder Construction Kit
 *
 * The authors copyrights to the codes are acknowledged.
 * The EZW coder is patented by Jerome Shapiro. As far as I know, these are
 * the patent numbers 
 * 5315670 (Issued May 24, 1994), 5321776 (Issued June 14, 1994) and 
 * 5412741 (Issued May 2, 1995).
 *
 *
 * Well, I wrote the coder with some one else codes, add some lines, remove 
 * some lines, sometimes just verbatim. Any way, if you feel that I am worth
 * the acknowledgement, please do so, or perhaps drop me an e-mail.
 *
 * Please refer to my website for more info.
 *
 * My contact:
 * msng@mmu.edu.my
 * http://www.pesona.mmu.edu.my/~msng
 *
 */
/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
 
/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	
/* $TODO
 * -----
 * - Add some other scan methods.
 * - etc...
 *
 */
/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/	

/* disable unused variabled warning */
#pragma warning (disable : 4101)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/stat.h>

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/
#include "global.h"
#include "mem.h"
#include "image.h"
#include "wavelet.h"
#include "wtransform.h"
#include "aricacm.h"
#include "map.h"
#include "subbandsymbol.h"
#include "memchk.h"

/* Code alphabet */
#define ZTR   0x00 
#define POS   0x01 
#define NEG   0x02 
#define IZ    0x03

#define ImageXSizeBits		13
#define ImageYSizeBits		13
#define ScanOrderBits		2
#define ScaleBits				4
#define WaveletIndexBits	4
#define ImageMeanBits		32
#define ThresholdBits		16
#define MaxHistoCountBits	12

#define BASEBAND_PARENT_SIGNIFICANT FALSE

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/
static char *FilterName[16] = {"antonini", "adelson", "odegard", "villa1810", 
										 "brislawn", "brislawn2", "haar", "daub4", 
										 "daub6", "daub8", "villa1", "villa2", 
										 "villa3", "villa4", "villa5", "villa6"};

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/
typedef struct DominantPassNodeStruct {
  short int x;
  short int y;
  char scale;
  char orientation;
  char code;
} DLNode;

/*----------------------------------------------------------------------------*/	
/*----------------------------------------------------------------------------*/
typedef struct SubordinatePastNodeStruct {
  short int x;
  short int y;
  char scale;
  char orientation;
  int qvalue;
  int rvalue;
} SLNode;


/*
int ScanOrderX[4]={0, 1, 0, 1};
int ScanOrderY[4]={0, 0, 1, 1};
*/


int ScanOrderX[4]={0, 0, 1, 1};
int ScanOrderY[4]={0, 1, 1, 0};


/*
int ScanOrderX[4]={0, 0, 1, 1};
int ScanOrderY[4]={0, 1, 0, 1};
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -