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

📄 dwt.c

📁 QccPack-0.54-1 released (2007-04-30) is being developed and tested on Fedora Core Linux. QccPack pro
💻 C
📖 第 1 页 / 共 2 页
字号:
                             int num_frames,                             int num_rows,                             int num_cols,                             int origin_frame,                             int origin_row,                             int origin_col,                             int subsample_pattern_frame,                             int subsample_pattern_row,                             int subsample_pattern_col,                             int num_scales,                             const QccWAVWavelet *wavelet){  int return_value;  int scale;  int original_num_frames = 0;  int original_num_rows = 0;  int original_num_cols = 0;  int phase_frame;  int phase_row;  int phase_col;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (num_scales <= 0)    return(0);    original_num_frames = num_frames;  original_num_rows = num_rows;  original_num_cols = num_cols;    for (scale = 0; scale < num_scales; scale++)    {      phase_frame = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_frame,                                                 subsample_pattern_frame);      phase_row = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_row,                                               subsample_pattern_row);      phase_col = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_col,                                               subsample_pattern_col);            if (QccWAVWaveletAnalysis3D(volume,                                  num_frames,                                  num_rows,                                  num_cols,                                  phase_frame,                                  phase_row,                                  phase_col,                                  wavelet))        {          QccErrorAddMessage("(QccWAVWaveletDyadicDWT3D): Error calling QccWAVWaveletAnalysis3D()");          goto Error;        }            num_frames =        QccWAVWaveletDWTSubbandLength(original_num_frames, scale + 1,                                      0, origin_frame,                                      subsample_pattern_frame);      num_rows =        QccWAVWaveletDWTSubbandLength(original_num_rows, scale + 1,                                      0, origin_row,                                      subsample_pattern_row);      num_cols =        QccWAVWaveletDWTSubbandLength(original_num_cols, scale + 1,                                      0, origin_col,                                      subsample_pattern_col);    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  return(return_value);}int QccWAVWaveletInverseDyadicDWT3D(QccVolume volume,                                    int num_frames,                                    int num_rows,                                    int num_cols,                                    int origin_frame,                                    int origin_row,                                    int origin_col,                                    int subsample_pattern_frame,                                    int subsample_pattern_row,                                    int subsample_pattern_col,                                    int num_scales,                                    const QccWAVWavelet *wavelet){  int return_value;  int scale;  int original_num_frames = 0;  int original_num_rows = 0;  int original_num_cols = 0;  int phase_frame;  int phase_row;  int phase_col;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (num_scales <= 0)    return(0);    original_num_frames = num_frames;  original_num_rows = num_rows;  original_num_cols = num_cols;    for (scale = num_scales - 1; scale >= 0; scale--)    {      num_frames =        QccWAVWaveletDWTSubbandLength(original_num_frames, scale,                                      0, origin_frame,                                      subsample_pattern_frame);      num_rows =        QccWAVWaveletDWTSubbandLength(original_num_rows, scale,                                      0, origin_row,                                      subsample_pattern_row);      num_cols =        QccWAVWaveletDWTSubbandLength(original_num_cols, scale,                                      0, origin_col,                                      subsample_pattern_col);            phase_frame = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_frame,                                                 subsample_pattern_frame);      phase_row = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_row,                                               subsample_pattern_row);      phase_col = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_col,                                               subsample_pattern_col);      if (QccWAVWaveletSynthesis3D(volume,                                   num_frames,                                   num_rows,                                   num_cols,                                   phase_frame,                                   phase_row,                                   phase_col,                                   wavelet))        {          QccErrorAddMessage("(QccWAVWaveletInverseDyadicDWT3D): Error calling QccWAVWaveletSynthesis3D()");          goto Error;        }    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  return(return_value);}int QccWAVWaveletPacketDWT3D(QccVolume volume,                             int num_frames,                             int num_rows,                             int num_cols,                             int origin_frame,                             int origin_row,                             int origin_col,                             int subsample_pattern_frame,                             int subsample_pattern_row,                             int subsample_pattern_col,                             int temporal_num_scales,                             int spatial_num_scales,                             const QccWAVWavelet *wavelet){  int return_value;  int frame, row, col;  QccVector temp_z = NULL;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if ((temporal_num_scales <= 0) ||      (spatial_num_scales <= 0))    return(0);    if ((temp_z = QccVectorAlloc(num_frames)) == NULL)    {      QccErrorAddMessage("(QccWAVWaveletPacketDWT3D): Error calling QccVectorAlloc()");      goto Error;    }    for (row = 0; row < num_rows; row++)    for (col = 0; col < num_cols; col++)      {        for (frame = 0; frame < num_frames; frame++)          temp_z[frame] = volume[frame][row][col];                if (QccWAVWaveletDWT1D(temp_z,                               num_frames,                               origin_frame,                               subsample_pattern_frame,                               temporal_num_scales,                               wavelet))          {            QccErrorAddMessage("(QccWAVWaveletPacketDWT3D): Error calling QccWAVWaveletDWT1D()");            goto Error;          }                for (frame = 0; frame < num_frames; frame++)          volume[frame][row][col] = temp_z[frame];      }    for (frame = 0; frame < num_frames; frame++)    if (QccWAVWaveletDWT2D(volume[frame],                           num_rows,                           num_cols,                           origin_row,                           origin_col,                           subsample_pattern_row,                           subsample_pattern_col,                           spatial_num_scales,                           wavelet))      {        QccErrorAddMessage("(QccWAVWaveletPacketDWT3D): Error calling QccWAVWaveletDWT2D()");        goto Error;      }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  QccVectorFree(temp_z);  return(return_value);}int QccWAVWaveletInversePacketDWT3D(QccVolume volume,                                    int num_frames,                                    int num_rows,                                    int num_cols,                                    int origin_frame,                                    int origin_row,                                    int origin_col,                                    int subsample_pattern_frame,                                    int subsample_pattern_row,                                    int subsample_pattern_col,                                    int temporal_num_scales,                                    int spatial_num_scales,                                    const QccWAVWavelet *wavelet){  int return_value;  int frame, row, col;  QccVector temp_z = NULL;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if ((temporal_num_scales <= 0) ||      (spatial_num_scales <= 0))    return(0);    if ((temp_z = QccVectorAlloc(num_frames)) == NULL)    {      QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3D): Error calling QccVectorAlloc()");      goto Error;    }    for (frame = 0; frame < num_frames; frame++)    if (QccWAVWaveletInverseDWT2D(volume[frame],                                  num_rows,                                  num_cols,                                  origin_row,                                  origin_col,                                  subsample_pattern_row,                                  subsample_pattern_col,                                  spatial_num_scales,                                  wavelet))      {        QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3D): Error calling QccWAVWaveletInverseDWT2D()");        goto Error;      }    for (row = 0; row < num_rows; row++)    for (col = 0; col < num_cols; col++)      {        for (frame = 0; frame < num_frames; frame++)          temp_z[frame] = volume[frame][row][col];                if (QccWAVWaveletInverseDWT1D(temp_z,                                      num_frames,                                       origin_frame,                                      subsample_pattern_frame,                                      temporal_num_scales,                                      wavelet))          {            QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3D): Error calling QccWAVWaveletInverseDWT1D()");            goto Error;          }                for (frame = 0; frame < num_frames; frame++)          volume[frame][row][col] = temp_z[frame];      }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  QccVectorFree(temp_z);  return(return_value);}

⌨️ 快捷键说明

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