Overview:
High dynamic range (HDR) is commonly used in modern image enhancement to generate a higher dynamic range of exposure levels of the original image. The aim is to present the human eye with a similar range of luminance [1]. And usually the outcome of HDR yields very nicely balanced or even artistic images. In the first step, we implemented serial HDR, naive HDR parallel, advanced HDR parallel, adding saturation mask, adding local buffer, and applying constant memory in order.
Local contrast enhancement attempts to increase the appearance of large-scale light-dark transitions [3]. It creates more contrast near the transition between bright portion and dark portion while preserving the overall image clarity. In the second step, we implemented the following algorithms: Histogram Equalization serial and numpy; Local Histogram Equalization serial; Adaptive Histogram Equalization serial; Adaptive Histogram adding local buffer, interpolation, changing data structure and avoiding bank conflicts.
We then extended by processing enhanced image with masks. We applied 2D grey scale convolution to our processed HDR image and paralleled the convolution process. A convolution is done by multiplying a pixel’s and its neighboring pixels color value by a matrix. A kernel/mask is a small matrix of numbers that is used in image convolution. The three convolution methods we used are: per pixel, adding local buffers for image, and adding local buffers for both image and mask.
This was a project by Xinyan Han, Haosu Tang, Qing Zhao, all CSE students at Harvard University.
Local contrast enhancement attempts to increase the appearance of large-scale light-dark transitions [3]. It creates more contrast near the transition between bright portion and dark portion while preserving the overall image clarity. In the second step, we implemented the following algorithms: Histogram Equalization serial and numpy; Local Histogram Equalization serial; Adaptive Histogram Equalization serial; Adaptive Histogram adding local buffer, interpolation, changing data structure and avoiding bank conflicts.
We then extended by processing enhanced image with masks. We applied 2D grey scale convolution to our processed HDR image and paralleled the convolution process. A convolution is done by multiplying a pixel’s and its neighboring pixels color value by a matrix. A kernel/mask is a small matrix of numbers that is used in image convolution. The three convolution methods we used are: per pixel, adding local buffers for image, and adding local buffers for both image and mask.
This was a project by Xinyan Han, Haosu Tang, Qing Zhao, all CSE students at Harvard University.