PetykiewiczBuckley
Introduction
Haze is caused by the scattering of Rayleigh and Mie light by particles in the atmosphere, such as droplets of water or smoke. Restoring an image to non-hazy conditions is desirable because we like clear days. Since the amount of Rayleigh scattering increases proportional to , where is the wavelength of light, for longer wavelengths there will be less scattering, and thus the image will appear less hazy at these wavelengths. Here, we investigate using NIR and red spectral data to add detail and thus dehaze images, using a modified version of the algorithm described in [1]. This algorithm takes detail from the long wavelength channel and adds it to a luminance channel to dehaze the image. Our investigation includes data from 400-1000 nm, and we investigate the possibilities of implementing a NIR filter for dehazing and of using the red camera sensor from three different commercial cameras to dehaze all three color channels. We perform a viewer study to assess the effectiveness of our dehazing. We also explain our results using spectral data and comparing to an online database[2] of reflectance spectra. We also dehaze RGB images taken from the dataset from [1] available here compare dehazing of these images with their NIR data and with the R pixel values, obtaining (to us) more attractive results with the R camera sensor.
Methods
We started with the hyperspectral panorama taken from the dish. Initially, we converted (scenes from) this data to XYZ by interpolating the XYZ curves given to us in ISET at the wavelengths at which the hyperspectral data was taken, and using these curves to weight the spectral data (see attached code). To view the image, we then converted the XYZ data to sRGB using ISET to display it. To dehaze the image, we used as a starting point the algorithm described in reference [1].
This algorithm uses a weighted least squares algorithm (described in [3]) to decompose the image into a multiscale representation with approximation and detail images of different degrees, and then compares pixel-wise the detail images from the NIR intensity image with detail images from the visible intensity image and synthesizes the approximation images with details from both the NIR and visible images.
The approximation images are given by:
where is the kth level approximation image, where we implement levels from 0 to n. is a measure of the coarseness of the approximation image, and is for the first image. As in [1] we chose , c = 2 and n = 6, although we experimented with different values and obtained similar results. is either an intensity channel of the visible image or the NIR image. We compared both a linear intensity channel and nonlinear (L*) channel for the dehazing, obtaining similar results. The NIR intensity image was also converted to an L* nonlinear scale before applying the filter in the case that the L* visible image channel was used. The function W performs the approximation operation using weighted least squares described in [2], the matlab code for implementing this function is freely available here. The detail images are differences of approximation images, as described in [1],[4], and are given by
An example of original, approximation and detail images is shown below.
The synthesis procedure is based on the observation that
and that the NIR image has higher contrast when there is haze, and therefore we can take from the detail image whichever has a higher intensity.
In practice, we found that simply replacing the visible detail with the NIR detail was not much different from this.
Results
- Organize your results in a good logical order (not necessarily historical order). Include relevant graphs and/or images. Make sure graph axes are labeled. Make sure you draw the reader's attention to the key element of the figure. The key aspect should be the most visible element of the figure or graph. Help the reader by writing a clear figure caption.
Conclusions
- Describe what you learned. What worked? What didn't? Why? What would you do if you kept working on the project?
References
- L. Schaul, C. Fredembach, and S. Süsstrunk, Color Image Dehazing using the Near-Infrared, IEEE International Conference on Image Processing, 2009.
- Baldridge, A. M., S.J. Hook, C.I. Grove and G. Rivera, 2009.. The ASTER Spectral Library Version 2.0. Remote Sensing of Environment, vol 113, pp. 711-715
- Z. Farbman, R. Fattal, D. Lischinski, and R. Szeliski, “Edgepreserving decompositions for multi-scale tone and detail manipulation,” International Conference on Computer Graphics and Interactive Techniques, pp. 1–10, 2008.
- A. Toet, “Hierarchical image fusion,” Machine Vision and Applications, vol. 3, no. 1, pp. 1–11, 1990.
- Y.Y. Schechner, S.G. Narasimhan, and S.K. Nayar, “Instant dehazing of images using polarization,” IEEE Conference on Computer Vision and Pattern Recognition, vol. 1, pp. 325–332, 2001.
- K. He, J. Sun, and X. Tang, “Single image haze removal using dark channel prior,” IEEE Conference on Computer Vision and Pattern Recognition, pp. 1957–1963, 2009.
- C. Fredembach and S. S¨usstrunk, “Colouring the near infrared,” IS&T 16th Color Imaging Conference, pp. 176–182, 2008.
Appendix I
- Upload source code, some result images, etc, and give a description of each link. In some cases, your acquired data may be too large to store practically. In this case, use your judgement (or consult one of us) and only link the most relevant data. Be sure to describe the purpose of your code and to edit the code for clarity. The purpose of placing the code online is to allow others to verify your methods and to learn from your ideas. It should be possible for someone else to generate result images using your code.
Appendix II
- Jan and Sonia split the work exactly down the center.