Bug 151685

Summary: Use ExifTool to show calculated/derived image parameters (depth of field, image angle, ...)
Product: [Applications] digikam Reporter: Christian Mayer <bug>
Component: Metadata-ExifToolAssignee: Digikam Developers <digikam-bugs-null>
Status: REPORTED ---    
Severity: wishlist CC: ahuggel, caulier.gilles
Priority: NOR    
Version: 0.9.2   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Christian Mayer 2007-11-01 12:39:10 UTC
Version:           0.9.2-final (using KDE KDE 3.5.8)
Installed from:    Ubuntu Packages

I'd like to have a functionality in digikam that shows me (e.g. in a side pane) information about a picture that isn't stored in the Exif but that can be derived of it.

Possible candidates for that are:

- image angle (horizontal, vertical and diagonal)
  (function of focal length and sensor size)
- depth of field
  (function of focal length, aperture and focus distance as well as the circle of confusion)
- size of diffraction
  (function of aperture)

The size of the circle of confusion should be adjustable. Interesting sizes are the "classic" d/1500 (picture diameter divided by 1500), 1 pixel (thus dependend on the sensor) and a user settable DPI amount for an user settable image size.

Once these formulas are implemented (there are many internet resources for them) it also would be interesting to have an aditional menu entry where you can select a camera model and a lens for it and digikam will show you the calculated values (as a table and perhaps a graph) independend from actual pictures. So you don't need to go one of the many internet pages that calculate the DoF for you - you can do it yourself in digikam :)

BTW: I haven't seen one calculator so far that calculates a series of DoF (for different apertures) that takes care of the diffraction at the same time (if the aperture gets too big, you don't need to care about the user set circle of confusion as the diffraction will generate a bigger one anyway...) So digikam could be the first who does that :)
Comment 1 Christian Mayer 2007-11-03 13:41:20 UTC
AS I just stumbled over it in a different context:

A motion blur calculator would also be a great addition :)

(PS: if you need the formulas for all these calculations I can try to collect them for you...)
Comment 2 caulier.gilles 2007-11-03 13:47:27 UTC
Christian,

Absolutly, we need formulas + context to use + full descriptions to add on API doc... else nothing will be done (:=)))

We working on more important parts currently (Database improvements + XMP support + KDE4 port). So all help is very usefull.

Gilles Caulier
Comment 3 Christian Mayer 2007-12-01 16:36:45 UTC
> > Absolutly, we need formulas + context to use + full descriptions to add on API doc... else nothing will be done (:=)))

Here are some collected formulas for part one (more might come later...)

The information of this post comes from
http://www.dslr-forum.de/showthread.php?t=21047 (for those that can
understand German...).

Some definitions:

f:       the real focal length in mm (the number on the lens;
         independent of the sensor size)
f_equiv: the felt focal length when used on a crop camera by comparing
         the picture angle
Y:       the crop factor (Canon DSLRs have e.g. mostly 1.6)
s_[o,p]: size of the object (the thing infront of the camera) or the
         picture (i.e. 1/2 of the sensor chip) in mm
d_[o,p]: distance of the object or the picture (i.e. sensor) to the
         principal plane of the lens in mm
S:       the size of the sensor in mm (and thus S = 2*s_p) - depending
         on the context it might be length, height or diameter
                 S = [36mm x 24mm] / Y
V:       reproduction scale, the ratio between picture size and object
         size    V := s_o / s_p
a°:      picture angle (the real one, not the simplified one with the
         object at infinity; changes with focus setting)
a°_inf:  picture angle when d_o = infinity (that's the one usually used
         in advertising material of the manufacturer)

I'm assuming that the EXIF will tell me: f, d_o, S
to calculate the rest here are some formulas:

class optics (just for background; not needed):
1/f = 1/d_o + 1/d_p
s_o/d_o = s_p/d_p

interesting for the digiKam user (thus the results should be shown in
this whish):
Y = [36mm x 24mm] / S
V = f/(d_o-f)
a° = 2 * arctan( S*(d_o-f)/(2*f*d_o) )
a°_inf = 2 * arctan( S / (2*f) )

(note to the reader: this shows us that focal length at a croped camera
= crop_factor * real focal length is *only* correct when the lens is
focused at infinity! Thus:)

f_equiv = f*Y / (1 - f/d_o + f*Y/d_o)

V is important for macro photos (that have about a 1:1 ratio). It should
be displayed differently, depending on its value:
  if( V < 1 )
    printf( "%f : 1", 1/V );
  else
    printf( "1 : %f", V   );

> > We working on more important parts currently (Database improvements + XMP support + KDE4 port). So all help is very usefull.

I know. :)

Comment 4 Julien Narboux 2007-12-03 09:22:22 UTC
Here is a database of camera sensor sizes released under creative commons, it may be useful for this wish:

http://en.wiki.autopano.net/Cameras.txt
Comment 5 Arnd Baecker 2007-12-03 10:21:25 UTC
> I'm assuming that the EXIF will tell me: f, d_o, S 

d_o: I think this is the biggest issue, to be investigated next: 
the distance information of the subject is not always (or most of the time?)
not available in the exif.
For example for Canon 350D the field Exif.CanonSi.SubjectDistance 
does not provide any information.
But maybe it is somewhere hidden in the makernotes ...
See also this information:
http://www.openphotographyforums.com/forums/showthread.php?p=1101&mode=threaded#post1101

For users of  EOS-1Ds Mark III, EOS-1D Mark III or EOS 40D things seem to be
better: http://dpnow.com/forum2/showthread.php?t=4613

Is the situation better for other brands?
Comment 6 Christian Mayer 2007-12-03 19:44:58 UTC
My Canon EOS 400D and my Canon IXUS both are showing in digiKam a value in Subject Distance - I don't know its unit though (cm?)

When there's no distance information the coresponding formulas should be greyed out or show an "-" (or something like that).

a°_inf and assuming infinity for f_equiv should still work though.
Comment 7 caulier.gilles 2009-07-20 11:11:28 UTC
I would to know if some work can be done by Exiv2 here, to compute non Exif photo informations. This can be suitable to have these info from command line too. Your viewpoint ?

Gilles Caulier
Comment 8 Andreas Huggel 2009-07-20 11:52:14 UTC
Possible. It would be done along the lines of this:

http://dev.exiv2.org/issues/show/505

Concern is that the info discussed here is not "basic info", i.e., for most people this will be a waste of resources. To address this, we could maybe make these computations optional.

More importantly, Exiv2 is not ready for this feature, yet. It requires the unified metadata container (#585).

Andreas
Comment 9 caulier.gilles 2021-04-25 02:46:19 UTC
In digiKam 7.3.0, we have a new ExiFtool metadata viewer on the right side bar.

https://imgur.com/D9Kvnqn

ExifTool has a "Composite" section which is exactly dedicated to show computed values from camera settings.

https://exiftool.org/TagNames/Composite.html

In ExifTool settings, user can customize Composite entries, as i can see. This is exactly what we need to solve this entry. 

Gilles Caulier