Sophie

Sophie

distrib > Mageia > 6 > x86_64 > by-pkgid > 0be97fa9f5017b8cc63fd78e5ba98658 > files > 12

lensfun-0.3.2-2.2.mga6.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>lensfun: Library architecture</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
MathJax.Hub.Config({
    messageStyle: "none"
});
</script><script type="text/javascript" src="http://lensfun.sourceforge.net/mathjax/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">lensfun
   &#160;<span id="projectnumber">0.3.2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Library architecture </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The library provides five basic types of objects to work with: <b>mounts</b> (<a class="el" href="structlfMount.html" title="This structure contains everything specific to a camera mount. ">lfMount</a>), <b>cameras</b> (<a class="el" href="structlfCamera.html" title="Camera data. Unknown fields are set to NULL. ">lfCamera</a>), <b>lenses</b> (<a class="el" href="structlfLens.html" title="Lens data. Unknown fields are set to NULL or 0. ">lfLens</a>), <b>databases</b> (<a class="el" href="structlfDatabase.html" title="A lens database object. ">lfDatabase</a>) and <b>modificators</b> (<a class="el" href="structlfModifier.html" title="A modifier object contains optimized data required to rectify a image. ">lfModifier</a>).</p>
<p>The <a class="el" href="structlfMount.html" title="This structure contains everything specific to a camera mount. ">lfMount</a> structure provides the information about a mount. For now the only information about a mount is its name and the list of compatible mounts.</p>
<p>The <a class="el" href="structlfCamera.html" title="Camera data. Unknown fields are set to NULL. ">lfCamera</a> structure provides information about a particular camera. Camera maker, model name, mount type and other things are included here.</p>
<p>The <a class="el" href="structlfLens.html" title="Lens data. Unknown fields are set to NULL or 0. ">lfLens</a> structure provides information about a lens. This structure contains a lot of information, since it's the heart of the library. Besides other things, this contains a list of lens calibration data. This information tells the library how to correct images distorted by a certain lens.</p>
<p>The <a class="el" href="structlfDatabase.html" title="A lens database object. ">lfDatabase</a> class provides a interface to the XML database. It allows to load, save XML files and to search the database for lenses, cameras and mounts.</p>
<p>Finally, the <a class="el" href="structlfModifier.html" title="A modifier object contains optimized data required to rectify a image. ">lfModifier</a> class will allow you to modify images. Not only correct for distortion introduced by lenses but also apply special effects on a image such as emulating certain lens (e.g. apply a reverse transform), modify the geometry of a image (e.g. convert a fisheye image to a rectilinear etc).</p>
<p>A typical application will first load the database by creating a <a class="el" href="structlfDatabase.html" title="A lens database object. ">lfDatabase</a> object and invoking the respective <a class="el" href="structlfDatabase.html#ac688c19eb77c64aa6f2be002f8e31e72" title="Find and load the lens database. ">lfDatabase::Load()</a> method. After that it can look for a Lens object using the bits of information from the user or from the source file. For example, the EXIF data contains the camera maker and camera model. Using this you can search for the respective camera in the database. In camera record you look at the mount field, and then do a lens search based on at least mount name. Additionaly, you may provide the lens manufacturer and/or model name from the EXIF data (which is not always possible). You get a list of possible lenses. If it's just one lens, you can assume that it's exactly the lens that was used to take the shot (this is true for compact cameras which have a fixed mount).</p>
<p>Now if you found more than one matching lens you must provide the user a choice. User chooses the exact lens that was used to make a shot. After that you can create a <a class="el" href="structlfModifier.html" title="A modifier object contains optimized data required to rectify a image. ">lfModifier</a> object using lens data. Using this object the image may be modified according to user preferences.</p>
<p>Lensfun transformations &ndash; at least those involving TCA and vignetting correction &ndash; must be applied to linear RGB data in the sensor's original colour space. Linear RGB can only be retrieved from RAW files, as JPEG files from most cameras already have colour transfromations applied. This is very important. If you do e.g. TCA correction on sRGB data, the colour fringes are still visible. And if you do vignetting correction after a gamma has been applied, the corners probably will look too bright. So make sure that Lensfun comes early enough in your processing chain. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Dec 15 2017 20:15:22 for lensfun by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>