HDR Imaging and Display
HDR Imaging and Display
Assignment 03 (Under Graduate),Assignment 02(Graduate)
Due Date: 8th, March, 2025 Given a sequence with different exposure level (Captured in CUHK-SZ usingSony A7S3, .ARW *files), merge them into HDR images. Read the meta data using *RawPy as the relative parameters.You can continue complete your code based on your own HW02(recommended). If you feel HW02 was not so well completed, just use thereference homework codes instead.
We recommend to to complete ASAP to avoid the time conflict with othermid-terms.
Step 1. Merge LDR RAW into 32-bit HDR Image (35pts) Since we start from RAW images which are already in linear space, you don'tneed to estimate camera response curve any more. Convert your RAW datainto uint16 and do all the operations with this uint16 data. Create aHDR_fusion.py file and code all the relative module inside it.This step 1 should be performed代写HDR Imaging and Display exactly before the Demosaicing process.Note: The Lecture06's equations need to calculate the mean pixel
value.
Merge LDR images with different exposure levels into an HDR image. Here,you need to define the least square objective function in log-space as givenin Lecture06. raw_exposure_fusion() (30pts)
Inputs:
- images # an image list with different exposure levels.
- weights # the computed gaussian weights given in slides.Outpus:1. HDR_image # 32-bits HDR ImagesUseful functions to complete: To avoid the error weights caused by this
over/under exposured values, you need to compute the mask for each rawimages before process the fusion in raw_exposure_fusion(). compute_mask()(10pts)
Inputs:
- images # an image list with different exposure levels.
- low_thres, high_thres # the threshold values for clipping the rawimages, here use [0.05, 0.95]*2^14 as default value for experiments. Youcan also adjust to achieve a better result.
Outputs:
- mask # a binary mask list for different exposure levels.Compute the weights for fusion according to the slides.get_fusion_weights() (10pts)
Inputs:
- images # an image list with different exposure levels.Outputs:
- weights
Step 2. Demosaic the fused raw data. Save your 32-bit HDR
image into 32-bit *.EXR * file. (10pts)\ Process CFA_Interpolation()Implement and process writeEXR()Check your saved results use the give tool-picturenaut.exe, or download thelinux for mac version as you need.
Step 3A. Global Tone Mapping(15pts)
Now that you have several HDR images, To display them in your 8-bitLCD/LED display, you need to tone map them. For this step, show yourresults on the report using the fused HDR images from set01. The goal is tounderstand the principles of Global tonemapping, implement the Rainhard
algorithm.
For each pixel in the image:Where:
= Displayed luminance.
= World luminance from the HDR image.
= Maximum luminance in the scene.This formula adaptively adjusts the brightness to prevent overexposure inbright areas while maintaining detail in darker regions.For details, Refer to "Photographic Tone Reproduction for Digital Images"
Step 3B. Tone Mapping with Bilateral Filter(40pts)
Now that you have several HDR images, To display them in your 8-bit
LCD/LED display, you need to tone map them. For this step, show yourresults on the report using the fused HDR images from set01.To realize tone mapping with bilateral filter. Firstly, you need to computethe intensity and then realize a bilateral filter to achieve the base intensityimage (Figure 12 in [1]): fastbilateral2d()
Inputs:
- HDR_image_log # 32-bits HDR Image in log space
- space_sigma = 0.02 * min(width,height)
- range_sigma = 0.4
Outputs:
- HDR_image_log_base # 32-bits HDR base ImageThen you need to obtain the details of the HDR imageHDR_image_log_detail. Then, the new intensity: compute_new_intensity()
LmaxInputs:
- HDR_image_log_base
- HDR_image_log_detail
- gamma # gamma means the compression factor here.Outputs:
- LDR_intensity # 8-bits LDR Intensity ImageFinally, combine your new intensity with the color channels and save theresults in RGB as a JPG file.For details, Refer to [1] Fr´edo Durand and Julie Dorsey Fast BilateralFiltering for the Display of High-Dynamic-Range Images. Siggraph 2002
Submission
To Grade submission for this homework. We highly recommend that youfinish the homework to prevent any issues when you start on the followinprojects for this class.
Code Submission (60%) The code is required with a simple run, and then the TAs can see the results(in JPG format). Put the data and set the data path as "../data/**" such thatcan be directly executed.
Results(20%) The Results shows a good visualization
Report and Description (20%)
For each function you implemented, show the results crops (center 512X512crops), describe what you have done, and explain your results.We recommend you write your report using Markdown (likeMarkdownPAD2) and export it to HTML format.
浙公网安备 33010602011771号