📄 dwt_int.c
字号:
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 = QccWAVWaveletDWTSubbandPhaseInt(scale + 1, origin_frame, subsample_pattern_frame); phase_row = QccWAVWaveletDWTSubbandPhaseInt(scale + 1, origin_row, subsample_pattern_row); phase_col = QccWAVWaveletDWTSubbandPhaseInt(scale + 1, origin_col, subsample_pattern_col); if (QccWAVWaveletAnalysis3DInt(volume, num_frames, num_rows, num_cols, phase_frame, phase_row, phase_col, wavelet)) { QccErrorAddMessage("(QccWAVWaveletDyadicDWT3DInt): Error calling QccWAVWaveletAnalysis3DInt()"); 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 QccWAVWaveletInverseDyadicDWT3DInt(QccVolumeInt 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 = QccWAVWaveletDWTSubbandPhaseInt(scale + 1, origin_frame, subsample_pattern_frame); phase_row = QccWAVWaveletDWTSubbandPhaseInt(scale + 1, origin_row, subsample_pattern_row); phase_col = QccWAVWaveletDWTSubbandPhaseInt(scale + 1, origin_col, subsample_pattern_col); if (QccWAVWaveletSynthesis3DInt(volume, num_frames, num_rows, num_cols, phase_frame, phase_row, phase_col, wavelet)) { QccErrorAddMessage("(QccWAVWaveletInverseDyadicDWT3DInt): Error calling QccWAVWaveletSynthesis3DInt()"); goto Error; } } return_value = 0; goto Return; Error: return_value = 1; Return: return(return_value);}int QccWAVWaveletPacketDWT3DInt(QccVolumeInt 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; QccVectorInt temp_z = NULL; if (volume == NULL) return(0); if (wavelet == NULL) return(0); if (temporal_num_scales > 0) { if ((temp_z = QccVectorIntAlloc(num_frames)) == NULL) { QccErrorAddMessage("(QccWAVWaveletPacketDWT3DInt): Error calling QccVectorIntAlloc()"); 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 (QccWAVWaveletDWT1DInt(temp_z, num_frames, origin_frame, subsample_pattern_frame, temporal_num_scales, wavelet)) { QccErrorAddMessage("(QccWAVWaveletPacketDWT3DInt): Error calling QccWAVWaveletDWT1DInt()"); goto Error; } for (frame = 0; frame < num_frames; frame++) volume[frame][row][col] = temp_z[frame]; } } if (spatial_num_scales > 0) for (frame = 0; frame < num_frames; frame++) if (QccWAVWaveletDWT2DInt(volume[frame], num_rows, num_cols, origin_row, origin_col, subsample_pattern_row, subsample_pattern_col, spatial_num_scales, wavelet)) { QccErrorAddMessage("(QccWAVWaveletPacketDWT3DInt): Error calling QccWAVWaveletDWT2DInt()"); goto Error; } return_value = 0; goto Return; Error: return_value = 1; Return: QccVectorIntFree(temp_z); return(return_value);}int QccWAVWaveletInversePacketDWT3DInt(QccVolumeInt 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; QccVectorInt temp_z = NULL; if (volume == NULL) return(0); if (wavelet == NULL) return(0); if (spatial_num_scales > 0) for (frame = 0; frame < num_frames; frame++) if (QccWAVWaveletInverseDWT2DInt(volume[frame], num_rows, num_cols, origin_row, origin_col, subsample_pattern_row, subsample_pattern_col, spatial_num_scales, wavelet)) { QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3DInt): Error calling QccWAVWaveletInverseDWT2DInt()"); goto Error; } if (temporal_num_scales > 0) { if ((temp_z = QccVectorIntAlloc(num_frames)) == NULL) { QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3DInt): Error calling QccVectorIntAlloc()"); 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 (QccWAVWaveletInverseDWT1DInt(temp_z, num_frames, origin_frame, subsample_pattern_frame, temporal_num_scales, wavelet)) { QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3DInt): Error calling QccWAVWaveletInverseDWT1DInt()"); 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: QccVectorIntFree(temp_z); return(return_value);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -