My Canon EOS takes very good photos, but as an amateur photographer I not always take the best pictures at the first shot. Specially problematic is getting the right exposure on every shot, so that is why I prefer to save my photos in Raw format for later processing and retouching.
I am going to describe the basic work flow I use to get the most of my raw photos using two great tools UFRaw + GIMP.
Both tools are available for Windows and Linux. Since my base distro is Fedora, this is how you can get them both from the standard repositories using yum as root:
Those are the minimum packages you will require, and yum will install all the dependency packages required. I would recommend installing the help files and the extra tools.
Now let's start loading the photo with UFRaw. Locate the raw image and right click on it selecting Open with UFRaw.
UFRaw will let you adjust a lot of parameters on your photograph before exporting it to Gimp, but we will focus here in the exposure. The original exposure is 0.00. Click on the gears icon and the exposure will be auto-corrected to average the tones on your photo.
Check the Live Histogram, now is normalized. UFRaw chose -0.28 as the average exposure value.
This is going to be the base exposure for the final photo. I will generate 3 photos from here, one underexposed, one neutral and one overexposed.
Underexposed (D) -2.28 (Background - 2 )
Overexposed (L) 1.72 (Background + 2 )
To export the photo to Gimp, set the desire exposure and click on the Gimp Icon on the bottom-right corner. Gimp will open a new window with the photo, preserving all the Exif information of the original.
Repeat the procedure to obtain the three required photos in Gimp.
Now, we want the three photos as layers to work on them as one. Pick the Underexposed (Dark) photo and go to the Edit menu, then Copy Visible. Now go to the Standard exposed picture and select on the Edit menu, Paste as > New Layer. Repeat the procedure with the Overexposed (Light) photo and finally close them as they are not needed any more. You should have them all on the same window as layers like this:
I renamed the layers, and this is the order I want them to be.
Now, let's create a layer mask on the Light Layer. Right click on the layer name and select Add Layer Mask.
Select Grayscale copy of the layer and be sure the Invert mask selector is checked.
Repeat the operation with the Dark Layer, but DO NOT invert the mask.
Now, with both layers with their masks, let's Blur the masks to improve the result. Select the Light mask and go to the Filters menu / Blur / Gaussian blur...
I usually select around 15-20 on the Blur Radius. Apply the blur also to the Dark Mask Layer.
Finally, for better results, select the opacity of the Light layer. I Usually select between 50-70 depending on the picture.
At this point you can save the image using Gimp's xcf extension to preserve the layers and make corrections in the future.
To export the picture to your preferred format, first merge the layers, right-clicking on any layer and selecting Flatten image.
To go one step further I rotated the image a little using the rotating tool and crop to get the best picture possible. Let's compare the original with the final version.
You can see the improvement on the dark areas (on the stairs) and the light areas (on the roof) and the mid-tone shadows (on the chairs).
Shooting Raw photos increase the chances to obtain good photos in the end, and with tools like these and a little patience you will obtain great results.