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

📄 zerotree.cpp

📁 wavlet compression on c++ only cods
💻 CPP
字号:
// Copyright (c) 1999 Stephen T. Welstead. All rights reserved.
// File zerotree.cpp Zerotree class

#include "zerotree.h"

void tzerotree::mark_parents (int row,int col,short symbol) {
    // Mark the parents of this position (row,col) as having a
    // significant child.
    // The four "children" of position (i,j) in the subtree
    // are: (2i-1,2j-1),(2i-1,2j),(2i,2j-1) and (2i,2j).
    // Here, we need to move "backward", or up the tree, and
    // determine the parent of a given (row, col) position.
    int ichild = row,jchild = col;
    int iparent = ichild,jparent = jchild;
    while ((iparent > 1)&&(jparent > 1)) {
       if ((ichild/2)*2 == ichild) // even
	  iparent = ichild/2;
       else // odd
	  iparent = (ichild+1)/2;
       if ((jchild/2)*2 == jchild) // even
	  jparent = jchild/2;
       else // odd
	  jparent = (jchild+1)/2;
       set(iparent,jparent,symbol);
       ichild = iparent;
       jchild = jparent;
       }  // end while
    return;
    }

void tzerotree::mark_children (int row,int col,int nrows,
	int ncols,short symbol) {
    int child_end_row,child_end_col,child_rows,child_cols;
    // The four "children" of position (i,j) in the subtree
    // are: (2i-1,2j-1),(2i-1,2j),(2i,2j-1) and (2i,2j).
    child_end_row = 2*row;
    child_end_col = 2*col;
    child_rows = 2;
    child_cols = 2;
    while ((child_end_row<=nrows)&&(child_end_col<=ncols)) {
       for (int i=child_end_row-child_rows+1;i<=child_end_row;i++)
	   for (int j=child_end_col-child_cols+1;j<=child_end_col;j++)
		set(i,j,symbol);
       child_end_row *= 2;
       child_end_col *= 2;
       child_rows *= 2;
       child_cols *= 2;
       }  // end while
    return;
    }

⌨️ 快捷键说明

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