Depth Image Reconstruction 3D

1 개요

초점거리가 선형적으로 변화하는 이미지 페이지들의 초점 측정치를 기반으로 대상의 높이를 추정하는 알고리즘

2 알고리즘 상세 설명

Source Images Destination Texture Image Destination Height Map Image
Source Image Destination Texture Image Destination Height Map Image
Fig. Source, Destination Texture and Destination Height Map image.

초점 측정치가 높은 페이지의 인덱스를 출력합니다.
부산물로써 함께 출력되는 텍스쳐 이미지는 Multi Focus 알고리즘의 출력 이미지와 유사합니다.

pi=argmaxpFM(xp,i)p_{i} = \textnormal{arg} \max_{p}{\textnormal{FM}(\textbf{x}_{p,i})}

소스 페이지 간 Alignment 가 맞지 않는 경우 이를 보정하기 위한 파라미터들이 있으며, 해당 옵션들은 내부에서 Perspective 알고리즘을 호출하는데 사용됩니다.

Destination 3D Object
Destination 3D Object
Fig. Destination 3D Object.

Result Height 이미지는 3D View 로 쉽게 표시할 수 있도록 float 타입 이미지로 고정됩니다. 해당 Height 이미지의 높이 배율이 필요한 경우 파라미터를 통해 설정할 수 있습니다.

3 파라미터 설정 및 사용 방법

Page Alignment 보정

입력 이미지 페이지 정렬 방향 설정

Focus Measure 방식 설정

Focus Measure 최고점 인덱스 측정 방식 설정

노이즈 후처리 필터 설정

출력 이미지 높이 배율 설정

4 예제 코드

CDepthImageReconstruction3D depthImageReconstruction3D;

CFLImage fliSourceImage;
CFLImage fliDestinationTextureImage;
CFLImage fliDestinationHeightMapImage;
CFL3DObjectHeightMap fl3DOHM;

depthImageReconstruction3D.SetSourceImage(fliSourceImage);
depthImageReconstruction3D.SetDestinationTextureImage(fliDestinationTextureImage);
depthImageReconstruction3D.SetDestinationHeightMapImage(fliDestinationHeightMapImage);
depthImageReconstruction3D.SetDestinationObject(fl3DOHM);
depthImageReconstruction3D.SetDirection(CDepthImageReconstruction3D::EDirection_BottomToTop);
depthImageReconstruction3D.SetDifferentialMethod(CDepthImageReconstruction3D::EDifferentialMethod_Auto);
depthImageReconstruction3D.EnableGaussianInterpolation(true);
depthImageReconstruction3D.SetFilter(CDepthImageReconstruction3D::EFilter_FLDenoisingType1);
depthImageReconstruction3D.SetFLDenoisingKernel(3.0);
depthImageReconstruction3D.SetFLDenoisingSigma(2.0);
depthImageReconstruction3D.SetFLDenoisingAmplitue(30.0);
depthImageReconstruction3D.SetPixelAccuracy(1.0);
depthImageReconstruction3D.SetDepthPitch(1.0);

depthImageReconstruction3D.Execute();
CDepthImageReconstruction3D depthImageReconstruction3D = new CDepthImageReconstruction3D();

CFLImage fliSourceImage = new CFLImage();
CFLImage fliDestinationTextureImage = new CFLImage();
CFLImage fliDestinationHeightMapImage = new CFLImage();
CFL3DObjectHeightMap fl3DOHM = new CFL3DObjectHeightMap();

depthImageReconstruction3D.SetSourceImage(ref fliSourceImage);
depthImageReconstruction3D.SetDestinationTextureImage(ref fliDestinationTextureImage);
depthImageReconstruction3D.SetDestinationHeightMapImage(ref fliDestinationHeightMapImage);
depthImageReconstruction3D.SetDestinationObject(ref fl3DOHM);
depthImageReconstruction3D.SetDirection(CDepthImageReconstruction3D.EDirection.BottomToTop);
depthImageReconstruction3D.SetDifferentialMethod(CDepthImageReconstruction3D.EDifferentialMethod.Auto);
depthImageReconstruction3D.EnableGaussianInterpolation(true);
depthImageReconstruction3D.SetFilter(CDepthImageReconstruction3D.EFilter.FLDenoisingType1);
depthImageReconstruction3D.SetFLDenoisingKernel(3.0);
depthImageReconstruction3D.SetFLDenoisingSigma(2.0);
depthImageReconstruction3D.SetFLDenoisingAmplitue(30.0);
depthImageReconstruction3D.SetPixelAccuracy(1.0);
depthImageReconstruction3D.SetDepthPitch(1.0);

depthImageReconstruction3D.Execute();
depthImageReconstruction3D = CDepthImageReconstruction3D()

fliSrcImage = CFLImage()
fliDstImage = CFLImage()
fliTxtImage = CFLImage()
fl3DOHM = CFL3DObjectHeightMap()

depthImageReconstruction3D.SetSourceImage(fliSrcImage)
depthImageReconstruction3D.SetDestinationHeightMapImage(fliDstImage)
depthImageReconstruction3D.SetDestinationTextureImage(fliTxtImage)
depthImageReconstruction3D.SetDestinationObject(fl3DOHM)
depthImageReconstruction3D.SetDirection(CDepthImageReconstruction3D.EDirection.BottomToTop)
depthImageReconstruction3D.SetDifferentialMethod(CDepthImageReconstruction3D.EDifferentialMethod.Auto)
depthImageReconstruction3D.EnableGaussianInterpolation(True)
depthImageReconstruction3D.SetFilter(CDepthImageReconstruction3D.EFilter.FLDenoisingType1)
depthImageReconstruction3D.SetFLDenoisingKernel(3.0)
depthImageReconstruction3D.SetFLDenoisingSigma(2.0)
depthImageReconstruction3D.SetFLDenoisingAmplitue(30.0)
depthImageReconstruction3D.SetPixelAccuracy(1.0)
depthImageReconstruction3D.SetDepthPitch(1.0)

depthImageReconstruction3D.Execute()

5 기타 사항

Supported Feature

Supported Format

6 관련 알고리즘

Perspective Bilateral Filter Guided Filter Multi Focus Depth Image Reconstruction MAP Based 3D