Discrete Cosine Transform
1 개요
이미지의 이산 웨이블릿 변환을 연산하는 알고리즘입니다.
2 알고리즘 상세 설명
DWT(이산 웨이블릿 변환)은 웨이블릿이 이산적으로 샘플링되는 모든 웨이블릿 변환입니다.
푸리에 변환에 비해 시간적 해상도가 있는 것이 주요 장점입니다.
주파수와 위치 정보(시간 내 위치)를 모두 포착합니다.
각 단계 별 Approximation, Horizontal Detail, Vertical Detail, Diagonal Detail 을 별도의 페이지로 출력합니다.
이미지 크기와 기저 함수의 길이에 따라 여러 단계의 분해 단계 연산을 지원합니다.
FLImaging® View 에서 출력 시 Normalize 한 형태로 출력됩니다.
N채널 8비트 이상 이미지 연산만 지원합니다.
해당 알고리즘은 NVIDIA Cuda 연산을 지원하기 때문에, NVIDIA Cuda 가 사용 가능한 환경에서 더 빠른 연산을 수행할 수 있습니다.
Source Image | Approximation Image | Horizontal Detail Image | Vertical Detail Image | Diagonal Detail Image |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
3 파라미터 설정 및 사용 방법
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetResultType | EFloatingPointAccuracy | eResultType | IN | 이미지 결과 타입 |
이미지 결과 타입을 설정합니다. EFloatingPointAccuracy_Bit32 로 설정 시 결과 이미지는 float 이미지로 생성되고, EFloatingPointAccuracy_Bit64 로 설정 시 결과 이미지는 double 이미지로 생성됩니다.
eResultType
- Default Value: EFloatingPointAccuracy_Bit32
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
EnableReconstructionMode | bool | bReconstructionMode | IN | 복원 모드 |
복원 모드를 설정합니다. Discrete Wavelet Transform 으로 분해한 이미지를 복원합니다.
bReconstruction
- Default Value: false
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetBasisFunction | EBasisFunction | eBasisFunction | IN | 기저 함수 |
Discrete Wavelet Transform 에 사용할 기저 함수를 설정합니다.
eBasisFunction
- Default Value: EBasisFunction_Haar
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetDecompositionLevel | int64_t | i64DecompositionLevel | IN | 분해 단계 |
분해 단계를 설정합니다. 이미지 크기와 기저 함수의 길이에 따라 최대 분해 단계가 제한됩니다.
i64DecompositionLevel
- Default Value: 1
4 예제 코드
CDiscreteWaveletTransform DiscreteWaveletTransform;
CFLImage fliSourceImage;
DiscreteWaveletTransform.SetSourceImage(fliSourceImage);
CFLImage fliDestinationImage;
DiscreteWaveletTransform.SetDestinationImage(fliDestinationImage);
DiscreteWaveletTransform.SetResultType(EFloatingPointAccuracy::EFloatingPointAccuracy_Bit32);
DiscreteWaveletTransform.SetBasisFunction(CDiscreteWaveletTransform::EBasisFunction_Haar);
DiscreteWaveletTransform.SetDecompositionLevel(1);
DiscreteWaveletTransform.Execute();