msgbartop
A chronological documentation test project, nothing serious, really!
msgbarbottom

02 Sep 2008 Rename files by wildcard pattern and correct the EXIF timestamp metadata

This is a little script I’ve written to correct all my image files since the EXIF timestamp information is one hour out of sync. The filenames have been renamed to comply to the EXIF information and has to be renamed again because of the one hour scew. The filename can look something like this 20080102-1201_DSC_0910.JPG where the name is built up like YYYYMMDD-HHMM_Original_Filename.JPG
Remember to backup your imagefiles before you continue. You have been warned!

Rename files using wildcard pattern

This is the files we are going to rename

20080102-1201_DSC_0910.JPG
20080105-1923_DSC_1006.JPG
20080111-1220_DSC00189.JPG
20080122-0929_DSC00190.JPG

The mmv command is a command that lets you move/copy/append/link multiple files by wildcard patterns. It can be installed in Debian (or Debian based distributions like Ubuntu) by issuing the command

# aptitude install mmv

Now rename the files back to their original name

# mmv "*_DSC*" "DSC#2"

The result after this operation looks like this

DSC_0910.JPG
DSC_1006.JPG
DSC_1179.JPG
DSC_1302.JPG
DSC_1587.JPG

Correct the EXIF timestamp using exiv2

Next adjust the EXIF information stored in the image files to fix the one hour difference. This can be done using different EXIF tools like exiftool, but I will show you how it can be done using jhead and exiv2. The advantage with exiv2 is that it can also handle Nikon NEF files while jhead only can prosess JPG.

The current timestamp can be determined as follows

# exiftool DSC_0910.JPG | grep "File Mo"

The result in this case is

File Modification Date/Time : 2008:01:02 08:34:09

Adjust EXIF time info one hour forward using exiftool

# exiftool -AllDates+=1 DSC_0910.JPG

Other tools that could have done the job

Adjust EXIF time info one hour forward using jhead

# jhead -ta +1 DSC_0910.JPG

Install the jhead package using aptitude as mentioned earlier for the mmv package

Adjust EXIF time info one hour forward using exiv2

# exiv2 ad -a 1 DSC_0910.JPG

Rename files back to YYYYMMDD-HHMM_Original_Filename.JPG

It is now time to rename the files back to the YYYYMMDD-HHMM_Original_Filename.JPG format I used before this operation. This operation has been describe in a previous post named Rename image files according to EXIF date

exiv2 -r'%Y%m%d-%H%M_:basename:' rename $(ls D*)

The script

#!/bin/bash -x
# Needed software:
# exiftool
# exiv2
# mmv

# Script tested on Nikon D80 and Sony Cybershot DSC-W12 files

# Make a printout of how the files look like now
ls -l > repair_name_and_exif_before.txt

# Rename files to remove date formatting back to original name
mmv "*_DSC*" "DSC#2"

# Change EXIF info on JPG files (order is important)
exiftool -overwrite_original -AllDates+=1 D*.JPG
# Preserve date/time of original file when writing
exiftool -overwrite_original '-DateTimeOriginal>FileModifyDate' D*.JPG

# Change EXIF info on NEF files (order is important)
exiftool -overwrite_original -AllDates+=1 '-DateTimeOriginal>FileModifyDate' D*.NEF
# Preserve date/time of original file when writing
exiftool -overwrite_original '-DateTimeOriginal>FileModifyDate' D*.NEF

# Rename files back to date formatting (YYYYMMDD-HHMM_Filename) based on the new EXIF info
exiv2 -r'%Y%m%d-%H%M_:basename:' rename $(ls D*)

# Make a printout of how the files look like after conversion
ls -l > repair_name_and_exif_after.txt

Tags: , , , , , , , , ,

Posted by

09 Jun 2008 Color channel swapping in Photoshop

This is a little HOWTO (or tutorial) about swapping/inverting two color channels. I will swap the red and the blue color channel using Adobe Photoshop CS 3 to create a more “normal” looking picture with a blue sky on my infrared photo taken with my Nikon D80 and a Hoya R72 67mm IR-filter. I will not describe how to take a IR photo and I will assume you have access to such a filter and know how to use it properly.

The result after this HOWTO should look something like this spring image taken some days ago. Not one of my best photos but it will do the job in this post.

  1. Open the IR photo file in Photoshop, presumeably a RAW file. In my case a Nikon NEF-file.
  2. Open the file whith the White Balance set “As shot”.
  3. The photo might look something like this

  4. Go to the menu and choose Image –> Adjustments –> Channel Mixer… Now you can change the Red Output Channel and set the value for Red to 0% and change the Blue value to 100%. On the Blue Output Channel you set the blue Source Channel to 0% and Red to 100%.
  5. Now we will let Photoshop adjust the levels and colors using the menu Image –> Adjustments –> Auto Levels followed by Image –> Adjustments –> Auto Color.
  6. The result image should look something like this

Thats all that is needed to swap or invert two color channels in Photoshop CS3.

This HOWTO has not been tested on on earlier versions of Photoshop but I guess the features I’ve used aren’t new.

Tags: , , , , ,

Posted by

14 Jan 2008 Rename image files according to EXIF date

This rename trick can be run in Windows, Linux and even Mac since the commandline program I’m going to use, exiv2, is available in all three platforms. Rename all image files in current folder to the format YYYYMMDDHHMM_Filename.EXT

This has been tested on my Nikon D80 JPEG and NEF image files.

Linux

exiv2 -r'%Y%m%d-%H%M_:basename:' rename $(ls)

Windows (from the command prompt)

exiv2.exe -r %Y%m%d-%H%M_:basename: rename d*

Windows (in a MS-DOS batch file)

exiv2.exe -r %%Y%%m%%d-%%H%%M_:basename: rename d*

You have to add an extra % if you are going to use exiv2 in a Windows batch file, because % in batch files is treated as a variable and not as a switch to exiv2.

These examples require that you have access to the exiv2 program from the current folder.

Result
Now my image files have names like

20071022-1202_DSC_9727.JPG
20071022-1202_DSC_9727.NEF

Change in workflow
Since I rename all my files in the format YYYYMMDD-HHMM_Filename I’ve included it in my image “workflow” (a simple MS-DOS batch file) I wrote about in Rotate images depending on the EXIF orientation post.

This has been tested successfully on the Windows exiv2 version 0.16

The new batch file can be downloaded here.

Tags: , , , , , , , ,

Posted by

22 Nov 2007 Number of shots taken by Nikon D80 camera

The Nikon D80 camera contains a EXIF tag value that counts the number shots taken

Tag (hex) Tag (dec) IFD Key Type Tag description
0x00a7 167 Makernote Exif.Nikon3.ShutterCount Long Number of shots taken by camera

This can be extracted by running the following command

exiv2 -pt picturename.JPG
...
Exif.Nikon3.ShutterCount                     Long        1  5263

This example shows that there have been 5263 shots taken.

I guess this EXIF tag exists on Nikon D40x, D60 and D70 also, but this is not verified.

More Nikon specific EXIF tags can be found on http://www.exiv2.org/tags-nikon.html

Tags: , , , ,

Posted by

06 Aug 2007 Nikon and capture image function from remote PC

I just figured out another nifty feature! The D70 has two USB connection modes, “mass storage” where the camera pretends to be an external hard drive, and PTP, which is an industry standard camera-computer USB protocol. Using PTP, it does not seem possible to download the camera contents with gphoto2, as I had with my A80, but it does support the –capture-image function, which causes the trigger release to be released!
(more…)

Tags: , , ,

Posted by