Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lpl-code/FastProjDefocusComp

Repository files navigation

FastProjDefocusComp

Corresponding paper is available on IEEE Transactions on Industrial Informatics. [Download here]

0. Before running the demo file "computeCompensationImage_demo.m", "real_scene_demo.m", "binary_decoding_evaluation.m", "metrics_for_vgroove.m", "metrics_for_textured.m", and "noise_level_est.m", make sure the path to the current folder be set to ".\FastProjBlurComp-master".

1. To reproduce the "Efficiency Evaluation" (shown in "Section IV-A" of the manuscript), please run "computeCompensationImage_demo.m".

Note: The original image can be replaced by modifying the variable value "image_no" in the 7th line of "computeCompensationImage_demo.m", the allowable value of 'image_no' is from 1 to 15.

Note: "image_no = 1, 2, 3" stands for "Lena", "Baby" and "House" respectively, as shown in Table I.

2. To reproduce an example of the proposed method used "in Real Scenes with a Tilted Surface" (shown in "Section IV-B" of the manuscript), please run "real_scene_demo.m".

Note: "real_scene_demo.m" performs following actions in order, 1) solving the "Transfer" from the camera to the projector's coordinate frame, 2) estimating kernel αf and Γ, and 3) generating the compensation image.

Note: The original image can be replaced by modifying the variable value "image_no" in the 6th line of "real_scene_demo.m", the allowable value of "image_no" is from 1 to 7.

3. To reproduce the metrics calculation results listed in TABLE III on both v-groove (see Fig. 11) and textured surface (see Fig. 12), please run "metrics_for_vgroove.m" and "metrics_for_textured.m", respectively.

4. To reproduce the experiment of binary-decoding-based evaluation method on a tilted surface (see Fig. 13), please run "binary_decoding_evaluation.m".

5. To reproduce the estimation results of the camera error level of the raw captured images, as listed in TABLE VI, please run "noise_level_est.m".

Note: We use the code provided by Wenzhao Zhao, which is described in the following article:

[26] W. Zhao, Q. Liu, Y. Lv, and B. Qin, "Texture variation adaptive image denoising with nonlocal PCA," IEEE Transactions on Image Processing.

6. Explaination of important code files:

6.1 Codes for "Efficiency Evaluation"

Name Function
optimization_method.m Generating the compensation image by using "Previous Iterative Optimization Method".
Note: Previous method consumes prohibitive time that generally more than 10 minutes.
proposed_method.m Generating the compensation image by using the proposed "Edge Intensification-based Algorithm", as discussed in Section II-B.

6.2 Codes for "Experiments in Real Scene"

Name Function
pist_main.m Solving the "Transfer" from the camera to the projector's coordinate frame, as discussed in "Section III-B".
kernelEstimation.m Estimating the "Defocus Kernel (PSF)" (kernel αf and Γ), as discussed in "Section III-A".
compensationImage.m Generating the "Compensation Image" in real scence by using the proposed using the proposed "Edge Intensification-based Algorithm".

6.3 Codes for "Binary-decoding based evaluation"

Name Function
decode_conGraycode_version2.m Decoding from the captured binary-encoded images, which is generally used in the context of structured-light 3D measurement, as discussed in "Section IV-C".

6.4 Codes for "Estimation of the level of camera errors"

Name Function
noise_evaluation_acva.m Estimating the camera errors based on Poisson-Gaussian noise model, by using the code provided in [26].

7. Explaination of important subfolders used for kernel estimation in "data" folder:

Name Function
subfolder "DOT" Captured images of the "Dot Patterns", as discussed in "Section III-A" and "Figure 5"
subfolder "RE1" Caputred images of the "Horizontal Sinusoidal Projections", as discussed in "Section III-B" and "Figure 5"
subfolder "RE6" Caputred images of the "Vertical Sinusoidal Projections", as discussed in "Section III-B" and "Figure 5"
folder "vgroove1-lite" Captured images from the complex surface, v-groove, as discussed in "Section IV-B" and "Figure 11"
folder "textured_lite" Captured images from the complex surface, textured surface, as discussed in "Section IV-B" and "Figure 12"
folder "binary-30-lite" Captured images of the "gray-code binary-encoded patterns", as discussed in "Section IV-C" and "Figure 13"

8. All of the codes have been successfully implemented in MATLAB R2018b. Feel free to contact us if you have any further quesitons.

About

Fast projection defocus correction for multiple projection surface types

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /