mirror of
https://github.com/opencv/opencv.git
synced 2024-11-25 03:30:34 +08:00
Merge pull request #1511 from apavlenko:shorten_hdr
This commit is contained in:
commit
9d626f3005
@ -44,7 +44,7 @@ In the following image, as your retina does, local luminance adaptation, spatial
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|
||||||
*Note :* image sample can be downloaded from the `OpenEXR website <http://www.openexr.com>`_. Regarding this demonstration, before retina processing, input image has been linearly rescaled within 0-255 keeping its channels float format. 5% of its histogram ends has been cut (mostly removes wrong HDR pixels). Check out the sample *opencv/samples/cpp/OpenEXRimages_HighDynamicRange_Retina_toneMapping.cpp* for similar processing. The following demonstration will only consider classical 8bit/channel images.
|
*Note :* image sample can be downloaded from the `OpenEXR website <http://www.openexr.com>`_. Regarding this demonstration, before retina processing, input image has been linearly rescaled within 0-255 keeping its channels float format. 5% of its histogram ends has been cut (mostly removes wrong HDR pixels). Check out the sample *opencv/samples/cpp/OpenEXRimages_HDR_Retina_toneMapping.cpp* for similar processing. The following demonstration will only consider classical 8bit/channel images.
|
||||||
|
|
||||||
The retina model output channels
|
The retina model output channels
|
||||||
================================
|
================================
|
||||||
|
@ -65,8 +65,8 @@ The retina can be settled up with various parameters, by default, the retina can
|
|||||||
|
|
||||||
.. Sample code::
|
.. Sample code::
|
||||||
|
|
||||||
* An example on retina tone mapping can be found at opencv_source_code/samples/cpp/OpenEXRimages_HighDynamicRange_Retina_toneMapping.cpp
|
* An example on retina tone mapping can be found at opencv_source_code/samples/cpp/OpenEXRimages_HDR_Retina_toneMapping.cpp
|
||||||
* An example on retina tone mapping on video input can be found at opencv_source_code/samples/cpp/OpenEXRimages_HighDynamicRange_Retina_toneMapping.cpp
|
* An example on retina tone mapping on video input can be found at opencv_source_code/samples/cpp/OpenEXRimages_HDR_Retina_toneMapping.cpp
|
||||||
* A complete example illustrating the retina interface can be found at opencv_source_code/samples/cpp/retinaDemo.cpp
|
* A complete example illustrating the retina interface can be found at opencv_source_code/samples/cpp/retinaDemo.cpp
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@ -121,13 +121,13 @@ Take a look at the provided C++ examples provided with OpenCV :
|
|||||||
**Note :** This demo generates the file *RetinaDefaultParameters.xml* which contains the default parameters of the retina. Then, rename this as *RetinaSpecificParameters.xml*, adjust the parameters the way you want and reload the program to check the effect.
|
**Note :** This demo generates the file *RetinaDefaultParameters.xml* which contains the default parameters of the retina. Then, rename this as *RetinaSpecificParameters.xml*, adjust the parameters the way you want and reload the program to check the effect.
|
||||||
|
|
||||||
|
|
||||||
* **samples/cpp/OpenEXRimages_HighDynamicRange_Retina_toneMapping.cpp** shows how to use the retina to perform High Dynamic Range (HDR) luminance compression
|
* **samples/cpp/OpenEXRimages_HDR_Retina_toneMapping.cpp** shows how to use the retina to perform High Dynamic Range (HDR) luminance compression
|
||||||
|
|
||||||
Then, take a HDR image using bracketing with your camera and generate an OpenEXR image and then process it using the demo.
|
Then, take a HDR image using bracketing with your camera and generate an OpenEXR image and then process it using the demo.
|
||||||
|
|
||||||
Typical use, supposing that you have the OpenEXR image *memorial.exr* (present in the samples/cpp/ folder)
|
Typical use, supposing that you have the OpenEXR image *memorial.exr* (present in the samples/cpp/ folder)
|
||||||
|
|
||||||
**OpenCVReleaseFolder/bin/OpenEXRimages_HighDynamicRange_Retina_toneMapping memorial.exr**
|
**OpenCVReleaseFolder/bin/OpenEXRimages_HDR_Retina_toneMapping memorial.exr**
|
||||||
|
|
||||||
Note that some sliders are made available to allow you to play with luminance compression.
|
Note that some sliders are made available to allow you to play with luminance compression.
|
||||||
|
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
static void help(std::string errorMessage)
|
static void help(std::string errorMessage)
|
||||||
{
|
{
|
||||||
std::cout<<"Program init error : "<<errorMessage<<std::endl;
|
std::cout<<"Program init error : "<<errorMessage<<std::endl;
|
||||||
std::cout<<"\nProgram call procedure : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping [OpenEXR image to process]"<<std::endl;
|
std::cout<<"\nProgram call procedure : ./OpenEXRimages_HDR_Retina_toneMapping [OpenEXR image to process]"<<std::endl;
|
||||||
std::cout<<"\t[OpenEXR image to process] : the input HDR image to process, must be an OpenEXR format, see http://www.openexr.com/ to get some samples or create your own using camera bracketing and Photoshop or equivalent software for OpenEXR image synthesis"<<std::endl;
|
std::cout<<"\t[OpenEXR image to process] : the input HDR image to process, must be an OpenEXR format, see http://www.openexr.com/ to get some samples or create your own using camera bracketing and Photoshop or equivalent software for OpenEXR image synthesis"<<std::endl;
|
||||||
std::cout<<"\nExamples:"<<std::endl;
|
std::cout<<"\nExamples:"<<std::endl;
|
||||||
std::cout<<"\t-Image processing : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping memorial.exr"<<std::endl;
|
std::cout<<"\t-Image processing : ./OpenEXRimages_HDR_Retina_toneMapping memorial.exr"<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// simple procedure for 1D curve tracing
|
// simple procedure for 1D curve tracing
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
// Name : OpenEXRimages_HighDynamicRange_Retina_toneMapping_video.cpp
|
// Name : OpenEXRimages_HDR_Retina_toneMapping_video.cpp
|
||||||
// Author : Alexandre Benoit (benoit.alexandre.vision@gmail.com)
|
// Author : Alexandre Benoit (benoit.alexandre.vision@gmail.com)
|
||||||
// Version : 0.2
|
// Version : 0.2
|
||||||
// Copyright : Alexandre Benoit, LISTIC Lab, december 2011
|
// Copyright : Alexandre Benoit, LISTIC Lab, december 2011
|
||||||
@ -19,14 +19,14 @@
|
|||||||
static void help(std::string errorMessage)
|
static void help(std::string errorMessage)
|
||||||
{
|
{
|
||||||
std::cout<<"Program init error : "<<errorMessage<<std::endl;
|
std::cout<<"Program init error : "<<errorMessage<<std::endl;
|
||||||
std::cout<<"\nProgram call procedure : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping [OpenEXR image sequence to process] [OPTIONNAL start frame] [OPTIONNAL end frame]"<<std::endl;
|
std::cout<<"\nProgram call procedure : ./OpenEXRimages_HDR_Retina_toneMapping [OpenEXR image sequence to process] [OPTIONNAL start frame] [OPTIONNAL end frame]"<<std::endl;
|
||||||
std::cout<<"\t[OpenEXR image sequence to process] : std::sprintf style ready prototype filename of the input HDR images to process, must be an OpenEXR format, see http://www.openexr.com/ to get some samples or create your own using camera bracketing and Photoshop or equivalent software for OpenEXR image synthesis"<<std::endl;
|
std::cout<<"\t[OpenEXR image sequence to process] : std::sprintf style ready prototype filename of the input HDR images to process, must be an OpenEXR format, see http://www.openexr.com/ to get some samples or create your own using camera bracketing and Photoshop or equivalent software for OpenEXR image synthesis"<<std::endl;
|
||||||
std::cout<<"\t\t => WARNING : image index number of digits cannot exceed 10"<<std::endl;
|
std::cout<<"\t\t => WARNING : image index number of digits cannot exceed 10"<<std::endl;
|
||||||
std::cout<<"\t[start frame] : the starting frame tat should be considered"<<std::endl;
|
std::cout<<"\t[start frame] : the starting frame tat should be considered"<<std::endl;
|
||||||
std::cout<<"\t[end frame] : the ending frame tat should be considered"<<std::endl;
|
std::cout<<"\t[end frame] : the ending frame tat should be considered"<<std::endl;
|
||||||
std::cout<<"\nExamples:"<<std::endl;
|
std::cout<<"\nExamples:"<<std::endl;
|
||||||
std::cout<<"\t-Image processing : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping_video memorial%3d.exr 20 45"<<std::endl;
|
std::cout<<"\t-Image processing : ./OpenEXRimages_HDR_Retina_toneMapping_video memorial%3d.exr 20 45"<<std::endl;
|
||||||
std::cout<<"\t-Image processing : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping_video memorial%3d.exr 20 45 log"<<std::endl;
|
std::cout<<"\t-Image processing : ./OpenEXRimages_HDR_Retina_toneMapping_video memorial%3d.exr 20 45 log"<<std::endl;
|
||||||
std::cout<<"\t ==> to process images from memorial020d.exr to memorial045d.exr"<<std::endl;
|
std::cout<<"\t ==> to process images from memorial020d.exr to memorial045d.exr"<<std::endl;
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user