联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2025-03-05 10:32

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 using

Sony 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 the

reference homework codes instead.

We recommend to to complete ASAP to avoid the time conflict with other

mid-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't

need to estimate camera response curve any more. Convert your RAW data

into uint16 and do all the operations with this uint16 data. Create a

HDR_fusion.py file and code all the relative module inside it.

This step 1 should be performed 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 given

in Lecture06. raw_exposure_fusion() (30pts)

Inputs:

1. images # an image list with different exposure levels.

2. weights # the computed gaussian weights given in slides.

Outpus:

1. HDR_image # 32-bits HDR Images

Useful functions to complete: To avoid the error weights caused by this

over/under exposured values, you need to compute the mask for each raw

images before process the fusion in raw_exposure_fusion(). compute_mask()

(10pts)

Inputs:

1. images # an image list with different exposure levels.

2. low_thres, high_thres # the threshold values for clipping the raw

images, here use [0.05, 0.95]*2^14 as default value for experiments. You

can also adjust to achieve a better result.

Outputs:

1. mask # a binary mask list for different exposure levels.

Compute the weights for fusion according to the slides.

get_fusion_weights() (10pts)

Inputs:

1. images # an image list with different exposure levels.

Outputs:

1. 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 the

linux 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-bit

LCD/LED display, you need to tone map them. For this step, show your

results on the report using the fused HDR images from set01. The goal is to

understand 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 in

bright 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 your

results on the report using the fused HDR images from set01.

To realize tone mapping with bilateral filter. Firstly, you need to compute

the intensity and then realize a bilateral filter to achieve the base intensity

image (Figure 12 in [1]): fastbilateral2d()

Inputs:

1. HDR_image_log # 32-bits HDR Image in log space

2. space_sigma = 0.02 * min(width,height)

3. range_sigma = 0.4

Outputs:

1. HDR_image_log_base # 32-bits HDR base Image

Then you need to obtain the details of the HDR image

HDR_image_log_detail. Then, the new intensity: compute_new_intensity()

Ld = 1+Lw

L ⋅ 1+ w (

Lmax

L

2

w

)

Ld

Lw

Lmax

Inputs:

1. HDR_image_log_base

2. HDR_image_log_detail

3. gamma # gamma means the compression factor here.

Outputs:

1. LDR_intensity # 8-bits LDR Intensity Image

Finally, combine your new intensity with the color channels and save the

results in RGB as a JPG file.

For details, Refer to [1] Fr´edo Durand and Julie Dorsey Fast Bilateral

Filtering for the Display of High-Dynamic-Range Images. Siggraph 2002

Submission

To Grade submission for this homework. We highly recommend that you

finish the homework to prevent any issues when you start on the following

projects 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 that

can 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 512X512

crops), describe what you have done, and explain your results.

We recommend you write your report using Markdown (like

MarkdownPAD2) and export it to HTML format.


相关文章

【上一篇】:到头了
【下一篇】:没有了

版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp