Archive for the ‘Open Source’ Category
For this project, we’ll use a photo of the famous Sagrada Familia cathedral in Barcelona, Spain (you can download the RAW file from https://www.box.com/s/cq3uknqt54o3usf1jg3r). The photo was taken with a Canon PowerShot S90 camera, and the RAW file exhibits several obvious flaws, including visible barrel distortion, underexposed areas, and noise. In other words, this particular RAW file is perfect for tweaking in digiKam.
Before you start, make sure that digiKam is set to open RAW files in the 16-bit mode using the default settings. To do this, choose Settings → Configure digiKam and switch to the Raw Decoding section. Enable the Use the default settings, 16 bit option and press OK. Open then the RAW file for editing using the F4 key (or choose Image → Edit).
The first order of business is to fix the lens distortion. Since the LenFun library used by digiKam for automatic lens correction doesn’t have a lens profile for Canon PowerShot S90, you have to fix lens distortion manually. Choose Enhance → Lens → Distortion, then use the Main slider to set the correction value. Alternatively, you can enter the exact value in the field next to the slider. For this particular file, the -27 value should do the trick. Check the preview image to make sure that the distortion is properly corrected, and press OK to apply the correction.
Although the Canon PowerShot S90 did a respectable job of producing a well-exposed image, the photo still has slightly underexposed areas. The easiest way to fix this problem is to use the Local Contrast tool (Enhance → Local Contrast). The default values should do the trick, but feel free to experiment with different settings. But don’t try to push them too far, as the final result may look unnatural. Also, before you start modifying the default settings, save them as a preset using the Save As button. Later, you can restore the original settings from the preset using the Load button.
Next stop is the Noise Reduction tool (Enhance → Noise Reduction). While the default noise reduction settings work fine in most situations, you might want to adjust them to achieve even better results. When experimenting with different noise reduction settings, it’s a good idea to switch to the 100% crop, which gives you a much better view of the noise reduction effect. To do this, select 100% from the Zoom drop-down list. You can then use the scrollbars to view the desired part of the photo. Alternatively, you can use the Pan button in the lower-right corner of the preview window to display a thumbnail of the photo and pan by dragging the red square to the desired area in the image. To preview the noise reduction result, use the Try button.
Finally, the photo could use some sharpening, so choose Enhance → Sharpen, adjust the sharpness level using the Sharpness slider, and press Try to preview the result. Again, you might want to switch to the 100% crop for a better preview.
Need to quickly push photos in digiKam to a device on the same network? Provided the device supports DLNA, you can do this using the DLNAExport Kipi plugin. Choose Export → Export via DLNA to open the DLNA Export wizard. From the Choose the implementation drop-down list, select either HUPnP API or miniDLNA. Both options have their advantages and drawbacks. miniDLNA supports thumbnails and works with all DLNA-compatible devices. But it can’t handle hierarchical folders or virtual albums. Also, miniDLNA relies on the older UPnP 1.0.0 protocol. HUPnP, in turn, uses the latest UPnP protocol and supports hierarchical folders and virtual albums. The drawbacks include the lack of support for Sony devices and thumbnails.
If you choose the miniDLNA option, you have to install the miniDLNA package on your system. To do this on Debian and Ubuntu-based Linux distributions, run the apt-get install minidlna command as root. Once miniDLNA has been installed, press the Find button in the DLNA Export window and specify the path to the miniDLNA binaries (usually it’s /usr/bin).
Press then the Next button, and select the collection you want to export. You have three options here: you can pick the desired albums in the My Albums section, or select tags under the My Tags tab to export photos containing specific tags. If you already have saved searches in digiKam, you can select them in the My Searches section to export photos matching specified search criteria. Note that tags and searches cannot be used with miniDLNA, as it doesn’t support virtual albums.
Press Next again and hit the Start button to start the DLNA server. You can then access the shared photos from any device on the network using a dedicated DLNA client, or DLNA-enabled software.
A new version of the digiKam Recipes ebook is available for download. The following material has been added since version 3.9.39:
- Create a Bleach Bypass Effect
- Export Photos via DLNA
- Process Film Negatives
- Calibrate and Profile Monitor for Use with digiKam
- Use Photoshop Curve Presets with digiKam
- Import Photos from a Remote Server into digiKam
As usual, the new release features minor fixes and improvements. Readers who already purchased the book will receive the new version free of charge. If you haven’t received your copy, please send your order confirmation as proof of purchase to email@example.com, and I’ll email you the latest version of the book.
I spent the best part of a day trying to create a lens profile for my trusty Canon PowerShot S90. In theory, it should be a rather straightforward thing to do. The Creating lens distortion models with Hugin’s lens calibrator article provides easy-to-follow instructions on how to create a lens distortion model.
I used a single RAW file to generate a simple model (see the screenshot above). I then added the following lens profile to the /usr/share/lensfun/compact-canon.xml file:
<model>Canon PowerShot S90</model>
<distortion model="ptlens" focal="6" a="0.01463" b="-0.07992" c="0.00461" />
So far, so good. digiKam seems to pick the added lens profile, but the Auto-Correction tool (Enhance → Lens → Auto-correction) produces a rather strange result:
I can’t figure out what I’m doing wrong, so if you have a suggestion, feel free to chime in.
While digiKam is first and foremost an application for processing and organizing digital photos, it also features tools for working with film negatives.
Before you can process negatives in digiKam, you need to digitize them. If you don’t have access to a film scanner or a lab that offers film scanning services, you can digitize film using a DSLR camera (there are plenty of tutorials on how to do that on the Web). The rest of the process assumes that you are using the latter way to digitize film negatives.
Open a RAW file containing a film negative in the editor (choose Tools → Image Editor or press F4). Crop the original file and apply lens correction if necessary. Choose then Color → Invert to transform the negative into a positive image. In case you work with the color negative, the converted image most likely requires some additional tweaking. First of all, the converted image is likely to have a strong blue tint. The easiest way to remove it is to use digiKam’s Auto-Correction tool. Choose Color → Auto-Correction and select one of the presets. In many cases, the Auto Levels or Equalize presets do a decent job of correcting the colors. If the colors still look slightly off, you can adjust them further using the Colors → Color Balance tool.
The Invert feature in combination with an Auto-Correct preset provides a quick-and-dirty way of converting negatives, but digiKam has another tool designed specifically for processing color negatives. To access it, choose the Color → Color Negative command. The Color Negative Film interface contains several handy features that can help you to convert the negative and tweak the resulting image. While the Invert tool uses a generic profile for converting negatives, the Color Negative Film interface offers film profiles for many popular film types. So the first step is to select the appropriate profile. For better results, try to enable the Color Balance option, too. If the used film is not in the list, you can use the Neutral profile as a fall back.
Although choosing the matching film profile may yield a better result, the converted image may still require some work. In most cases, you may need to adjust the white point to remove the remaining blue tint. You can do this either manually or automatically using the appropriate buttons. Usually, the automatic white point adjustment does the job, but the resulting image needs to be brightened up by adjusting the Gamma input value slider.
Using commands under the Import menu, you can pull photos from a variety of sources, including remote servers. The latter functionality in digiKam is provided through the KioExportImport Kipi plugin which supports common protocols like FTP, SSH, and SMB.
To pull photos from a remote server, choose the Import → Import from remote computer command. In the import dialog window, press the Add Images button to open the Select Images dialog. There are two ways to access photos stored on a remote server. If the machine runs on the local network, you can access it by choosing the Network item in the Places panel (if the panel is not visible, press F9 to enable it). This will show all shares and services available on the local network. Navigate then to the desired share and select the photos you want to import.
To access remote servers outside your local network, click on the Location field and enter the server’s URL. The URL must start with the protocol prefix (e.g., fish:// (for the SSH protocol or smb:// for the SMB protocol).
Once you’ve located the source directory, select the desired images and press Open to add them to the list of imported photos. In the My Albums pane, select the target album (or create a new one), and press the Start Import button to import the photos into digiKam.
While digiKam can’t handle Adobe Photoshop curve presets directly, the application supports curves in the GIMP-compatible CRV format. So if you want to use Adobe Photoshop curve presets with digiKam, you have to convert them into .crv files — and the acv2gimp.py Python script can help you with that. Before you put the script to use, make sure that Python is installed on your system. Next, use the chmod +x acv2gimp.py command to make the script executable. Once you’ve done that, you can convert a curve preset by running the ./acv2gimp.py command followed by the name of the file in the ACV format:
By default, the converted file has the same name as the original preset sans the file extension (e.g., curvepreset.acv becomes curvepreset), but you can use the -o parameter to specify a different name:
./acv2gimp.py -o converteredcurvepreset.crv curvepreset.acv
To load the converted curve preset in digiKam, open a photo for editing and choose Colors → Curves Adjust. Press then the Load button and select the converted curve.
A new version of the digiKam Recipes ebook is available for your reading pleasure. Besides a few minor tweaks, the new version of the digiKam Recipes ebook includes the following new material:
- Use Photoshop Curve Presets with digiKam
- Import Photos from a Remote Server into digiKam
Readers who already purchased the book will receive the new version free of charge. If you haven’t received your copy, please send your order confirmation as proof of purchase to firstname.lastname@example.org, and I’ll email you the latest version of the book.
Thanks to digiKam’s geocorrelation capabilities, you can geotag photos using a GPX file created with apps like Open GPS Tracker. But there is also another way to use your Android device for geotagging. The built-in camera app of most Android devices is capable of geotagging photos. This means that you can take a geotagged snap with the Android camera and then transfer geographical coordinates from it to other photos using digiKam. So next time, when you are done shooting with your main camera, remember to take a reference snapshot with your Android device (make sure that the geotagging option is enabled).
In digiKam, select the reference snapshot along with the photos you want to geotag and choose Image → Geo-location. Right-click on the reference snapshot in the selection list and choose Copy coordinates. Mark then the rest of the photos in the list, right-click on the selection, choose Paste coordinates, press the Apply button, and you are done.
Being a do-it-all kind of application, digiKam is suited not only for performing the mundane tasks of organizing and editing photos. The application also offers a specialized tools for more advanced operations: from blending bracketed photos to stitching panoramas. The latter functionality in digiKam is implemented as a Kipi plugin which relies on Hugin, a set of powerful tools for processing photos and stitching them into panorama images. The plugin wraps Hugin features into a user-friendly interface which dramatically simplifies the process of turning multiple photos into a panorama.
Obviously, to make use of digiKam’s panorama stitching capabilities, you have to install Hugin software on your system. Hugin is available in the software repositories of many mainstream Linux distributions, so you can install it using your distro’s package manager. On Debian and Ubuntu, this can be done by running the apt-get install hugin command as root. To install Hugin on Windows, grab the installer from the project’s website.
Stitching panoramas in digiKam is a pretty straightforward process. Select the photos you want to stitch, and choose the Tools → Stitch images into a panorama command. This opens the Panorama Tool which guides you through the process of generating a panorama which consists of a few relatively simple steps. Each step lets you specify several settings, like the output format (JPEG or TIFF) and the ability to detect moving skies. You can also enable the horizon leveling and automatic projecting and crop options. To view brief descriptions of the available options and settings, hover the mouse over them. Once the Panorama Tool has finished stitching images, it prompts you to save the project file. Using this file, you can reprocess the photos in Hugin, if needed.