Skip to main content
added 217 characters in body
Source Link
gbos
  • 127
  • 1
  • 8

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Yet, seems like some images lose DR when blended together. So I'm a little confused. For example, these images once blended have narrower DR than before.

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Yet, seems like some images lose DR when blended together. So I'm a little confused.

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Yet, seems like some images lose DR when blended together. So I'm a little confused. For example, these images once blended have narrower DR than before.

deleted 262 characters in body
Source Link
gbos
  • 127
  • 1
  • 8

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Using a grayscale imageYet, the dynamic range of the result HDR image is always widerseems like some images lose DR when blended together. Using an RGB image, it's not. Right now seems like the original DR is wider than the HDR one. I'm computing the original and the HDR dynamic range by finding the min and max value in every channel altogether but I'm don't think it's the right way to do it. So I'm a little confused.

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Using a grayscale image, the dynamic range of the result HDR image is always wider. Using an RGB image, it's not. Right now seems like the original DR is wider than the HDR one. I'm computing the original and the HDR dynamic range by finding the min and max value in every channel altogether but I'm don't think it's the right way to do it.

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Yet, seems like some images lose DR when blended together. So I'm a little confused.

added 6 characters in body
Source Link
gbos
  • 127
  • 1
  • 8

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Using a grayscale image, the dynamic range of the result HDR image is always wider. Using an RGB image, it's not. It depends which channel I use to compute the range. Usually when I use the green one, the DR is higher as expected. SoUsing an RGB image, rightit's not. Right now I'm trying to find a general method to calculateseems like the original DR on a RGB imageis wider than the HDR one. Any suggestion?I'm computing the original and the HDR dynamic range by finding the min and max value in every channel altogether but I'm don't think it's the right way to do it.

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Using a grayscale image, the dynamic range of the result HDR image is always wider. Using an RGB image, it's not. It depends which channel I use to compute the range. Usually when I use the green one, the DR is higher as expected. So, right now I'm trying to find a general method to calculate the DR on a RGB image. Any suggestion?

Ok I think I found a solution by myself. I'll try to explain it here, let me know what you people think about it.

INPUT: 3 grayscale 8 bit images

OUTPUT: 1 HDR radiance map (single precision)

So, to compute the HDR image I use the Devebec algorithm

This algorithm outputs the radiance map computed from the 3 (or more) input photos. Every pixel value represent the relative illuminance (irradiance actually) of the corresponding point in the scene. I can then calculate the dynamic range simply by using the max and min pixel value from this matrix:

stops = log2(max) - log2(min);

It's not important that the irradiance values are not the absolute one, because we are computing a range:

absolute_value = scale_factor + relative_value

range = absolute_max - absolute_min = (relative_max + scale_factor) - (relative_min + scale_factor) = relative_max - relative_min

To blend the images the algorithm need to recover the camera response function. This function relate the pixel values to the relative illuminance of the scene. This means that once I have the camera response curve, and the maximum and minimum pixel value in the original image (in this case 0 and 255) I can retrieve the relative irradiance values of the original image too:

exp(g(255)-ln⁡(dt) ) = E_max
exp(g(0)-ln⁡(dt) ) = E_min

where

g = inverse of camera response function (calculated by the script)
dt = shutter speed used on the original image

I can then compute the actual dynamic range of the original image and compare it to the HDR image dynamic range.

Using a grayscale image, the dynamic range of the result HDR image is always wider. Using an RGB image, it's not. Right now seems like the original DR is wider than the HDR one. I'm computing the original and the HDR dynamic range by finding the min and max value in every channel altogether but I'm don't think it's the right way to do it.

Source Link
gbos
  • 127
  • 1
  • 8
Loading