<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.panotools.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;feed=atom&amp;action=history</id>
		<title>Lens Correction in PanoTools - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;action=history"/>
		<updated>2013-05-24T00:36:34Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.0</generator>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13766&amp;oldid=prev</id>
		<title>Zarl: Reverted edits by Koae (Talk) to last version by Tksharpless</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13766&amp;oldid=prev"/>
				<updated>2011-11-10T12:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/Special:Contributions/Koae&quot; title=&quot;Special:Contributions/Koae&quot;&gt;Koae&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Koae&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Koae (page does not exist)&quot;&gt;Talk&lt;/a&gt;) to last version by &lt;a href=&quot;/index.php?title=User:Tksharpless&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Tksharpless (page does not exist)&quot;&gt;Tksharpless&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:01, 10 November 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=Lens Correction in PanoTools=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=Lens Correction in PanoTools=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The PanoTools library implements an effective, but rather idiosyncratic method for correcting lens projections, that causes a good deal of puzzlement.&amp;#160; Lens parameters optimized for one image format generally do not work for a different format; even rotating a set of images 90 degrees before aligning them produces different and incompatible lens parameters.&amp;#160; One would expect that there must be a way to convert either of those parameter sets to a common form, that would apply equally well to both formats, or indeed to any image taken with the same lens.&amp;#160; To see how that might be done, I have made a detailed analysis of PanoTools lens correction computations, based on the code in historic as well as current versions of libpano and helpful discussions with Helmut Dersch.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[http://ca.bestessays.com/ paper writing service]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The PanoTools library implements an effective, but rather idiosyncratic method for correcting lens projections, that causes a good deal of puzzlement.&amp;#160; Lens parameters optimized for one image format generally do not work for a different format; even rotating a set of images 90 degrees before aligning them produces different and incompatible lens parameters.&amp;#160; One would expect that there must be a way to convert either of those parameter sets to a common form, that would apply equally well to both formats, or indeed to any image taken with the same lens.&amp;#160; To see how that might be done, I have made a detailed analysis of PanoTools lens correction computations, based on the code in historic as well as current versions of libpano and helpful discussions with Helmut Dersch.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Why Lens Correction?==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Why Lens Correction?==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zarl</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13765&amp;oldid=prev</id>
		<title>Koae: /* Lens Correction in PanoTools */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13765&amp;oldid=prev"/>
				<updated>2011-11-10T09:53:47Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Lens Correction in PanoTools&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 09:53, 10 November 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=Lens Correction in PanoTools=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=Lens Correction in PanoTools=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The PanoTools library implements an effective, but rather idiosyncratic method for correcting lens projections, that causes a good deal of puzzlement.&amp;#160; Lens parameters optimized for one image format generally do not work for a different format; even rotating a set of images 90 degrees before aligning them produces different and incompatible lens parameters.&amp;#160; One would expect that there must be a way to convert either of those parameter sets to a common form, that would apply equally well to both formats, or indeed to any image taken with the same lens.&amp;#160; To see how that might be done, I have made a detailed analysis of PanoTools lens correction computations, based on the code in historic as well as current versions of libpano and helpful discussions with Helmut Dersch.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The PanoTools library implements an effective, but rather idiosyncratic method for correcting lens projections, that causes a good deal of puzzlement.&amp;#160; Lens parameters optimized for one image format generally do not work for a different format; even rotating a set of images 90 degrees before aligning them produces different and incompatible lens parameters.&amp;#160; One would expect that there must be a way to convert either of those parameter sets to a common form, that would apply equally well to both formats, or indeed to any image taken with the same lens.&amp;#160; To see how that might be done, I have made a detailed analysis of PanoTools lens correction computations, based on the code in historic as well as current versions of libpano and helpful discussions with Helmut Dersch.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://ca.bestessays.com/ paper writing service]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Why Lens Correction?==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Why Lens Correction?==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Koae</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13062&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Corrections */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13062&amp;oldid=prev"/>
				<updated>2011-01-24T17:16:34Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Corrections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 17:16, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 103:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 103:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity depends on lens focal length and camera properties.&amp;#160; Today, equipment manufacturers' specifications usually provide the needed data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity depends on lens focal length and camera properties.&amp;#160; Today, equipment manufacturers' specifications usually provide the needed data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{pixels} = F_{mm} \frac {sensor\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{pixels} = F_{mm} \frac {sensor\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Alternatively, the EXIF data from most &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;modern &lt;/del&gt;high-end cameras includes the &amp;quot;focal plane resolution&amp;quot; field, which gives the physical pixel size directly.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Alternatively, the EXIF data from most high-end cameras includes the &amp;quot;focal plane resolution&amp;quot; field, which gives the physical pixel size directly.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;F &lt;/del&gt;is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one given by the physical specifications, which would of course be used as the initial value.&amp;#160; The main uncertainty is how accurately the nominal lens focal length reflects the true one, because &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for digital cameras &lt;/del&gt;the focal plane resolution is known &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;exactly&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;With &amp;lt;math&amp;gt; h &amp;lt;/math&amp;gt; the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; &lt;/ins&gt;is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one given by the physical specifications, which would of course be used as the initial value.&amp;#160; The main uncertainty is how accurately the nominal lens focal length reflects the true one, because &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;normally &lt;/ins&gt;the focal plane resolution is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;precisely &lt;/ins&gt;known.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;With &amp;lt;math&amp;gt; h &amp;lt;/math&amp;gt; the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the pixel size associated with the image.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the pixel size associated with the image.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13061&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Corrections */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13061&amp;oldid=prev"/>
				<updated>2011-01-24T17:09:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Corrections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 17:09, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 107:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 107:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one given by the physical specifications, which would of course be used as the initial value.&amp;#160; The main uncertainty is how accurately the nominal lens focal length reflects the true one, because for digital cameras the focal plane resolution is known exactly.&amp;#160; With &amp;lt;math&amp;gt; h &amp;lt;/math&amp;gt; the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one given by the physical specifications, which would of course be used as the initial value.&amp;#160; The main uncertainty is how accurately the nominal lens focal length reflects the true one, because for digital cameras the focal plane resolution is known exactly.&amp;#160; With &amp;lt;math&amp;gt; h &amp;lt;/math&amp;gt; the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the pixel size associated with the image.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the pixel size associated with the image&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&amp;#160; As a fall-back when no pixel size is specified, &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; can be calculated from hfov and image width as libpano does now.&amp;#160; If hfov was fitted on the same image format, this will be the correct value; so portable corrections would not invalidate existing scripts in presently correct use cases&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not now use any physical parameters&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&amp;#160; As it stands now&lt;/del&gt;, fully portable corrections would have to be calculated, saved and restored by front-end software that has access to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the camera's sensor &lt;/del&gt;size.&amp;#160; But if &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;physical pixel size and focal length &lt;/del&gt;were added to the PanoTools parameter set, libpano could handle fully portable corrections autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not now use any physical parameters, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;so &lt;/ins&gt;fully portable corrections would have to be calculated, saved and restored by front-end software that has access to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;focal length and pixel &lt;/ins&gt;size.&amp;#160; But if &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;those &lt;/ins&gt;were added to the PanoTools parameter set, libpano could handle fully portable corrections autonomously.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13060&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Calibrations */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13060&amp;oldid=prev"/>
				<updated>2011-01-24T16:46:10Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Calibrations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 16:46, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Along with the ideal function A2Nsource(), which gives N as a function of angle, this constitutes a portable lens correction function.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Along with the ideal function A2Nsource(), which gives N as a function of angle, this constitutes a portable lens correction function.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Fully Portable &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Calibrations&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Fully Portable &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Corrections&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make a lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make a lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity depends on lens focal length and camera properties.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;In most cases today&lt;/del&gt;, equipment manufacturers' specifications provide the needed data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity depends on lens focal length and camera properties.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Today&lt;/ins&gt;, equipment manufacturers' specifications &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;usually &lt;/ins&gt;provide the needed data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{pixels} = F_{mm} \frac {sensor\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{pixels} = F_{mm} \frac {sensor\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;implied &lt;/del&gt;by &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;these &lt;/del&gt;physical specifications, the main uncertainty &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;being &lt;/del&gt;how accurately the nominal lens focal length reflects the true one.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Alternatively, the EXIF data from most modern high-end cameras includes the &amp;quot;focal plane resolution&amp;quot; field, which gives the physical pixel size directly.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;With &amp;lt;math&amp;gt; h &amp;lt;/math&amp;gt; the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;given &lt;/ins&gt;by &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;physical specifications, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which would of course be used as &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;initial value.&amp;#160; The &lt;/ins&gt;main uncertainty &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;is &lt;/ins&gt;how accurately the nominal lens focal length reflects the true one&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, because for digital cameras the focal plane resolution is known exactly&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;With &amp;lt;math&amp;gt; h &amp;lt;/math&amp;gt; the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;format &lt;/del&gt;it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;format's &lt;/del&gt;pixel size.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the pixel size &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;associated with the image.&amp;#160; As a fall-back when no pixel size is specified, &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; can be calculated from hfov and image width as libpano does now.&amp;#160; If hfov was fitted on the same image format, this will be the correct value; so portable corrections would not invalidate existing scripts in presently correct use cases&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not use any physical parameters.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;So as &lt;/del&gt;it stands now, portable &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;lens calibrations &lt;/del&gt;would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if physical pixel size were added to the PanoTools parameter set, libpano could handle portable &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;lens calibrations &lt;/del&gt;autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;now &lt;/ins&gt;use any physical parameters.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;As &lt;/ins&gt;it stands now, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;fully &lt;/ins&gt;portable &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;corrections &lt;/ins&gt;would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if physical pixel size &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and focal length &lt;/ins&gt;were added to the PanoTools parameter set, libpano could handle &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;fully &lt;/ins&gt;portable &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;corrections &lt;/ins&gt;autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; -- &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;23 &lt;/del&gt;Jan 2010 T K Sharpless&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; -- &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;24 &lt;/ins&gt;Jan 2010 T K Sharpless&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Community:Project]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Community:Project]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13057&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Corrections */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13057&amp;oldid=prev"/>
				<updated>2011-01-24T02:37:46Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Corrections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:37, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Along with the ideal function A2Nsource(), which gives N as a function of angle, this constitutes a portable lens correction function.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Along with the ideal function A2Nsource(), which gives N as a function of angle, this constitutes a portable lens correction function.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Fully Portable &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Corrections&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Fully Portable &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Calibrations&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make a lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make a lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13056&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Corrections */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13056&amp;oldid=prev"/>
				<updated>2011-01-24T02:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Corrections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:36, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 108:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 108:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image format it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;given sensor dimensions and &lt;/del&gt;pixel &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;counts&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image format it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from the calibrated &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;format's &lt;/ins&gt;pixel &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;size&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not use any physical parameters.&amp;#160; So as it stands now, portable lens calibrations would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if physical pixel size were added to the PanoTools parameter set, libpano could handle portable lens calibrations autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not use any physical parameters.&amp;#160; So as it stands now, portable lens calibrations would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if physical pixel size were added to the PanoTools parameter set, libpano could handle portable lens calibrations autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13055&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Corrections */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13055&amp;oldid=prev"/>
				<updated>2011-01-24T02:34:20Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Corrections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:34, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 101:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make a lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make a lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity depends on &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;both &lt;/del&gt;lens and camera properties.&amp;#160; In most cases today, equipment manufacturers' specifications provide the needed data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity depends on lens &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;focal length &lt;/ins&gt;and camera properties.&amp;#160; In most cases today, equipment manufacturers' specifications provide the needed data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;F &lt;/del&gt;= {&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(focal\ length\ in\ &lt;/del&gt;mm&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/del&gt;} \frac {&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;image&lt;/del&gt;\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;F_{pixels} &lt;/ins&gt;= &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;F_&lt;/ins&gt;{mm} \frac {&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sensor&lt;/ins&gt;\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one implied by these physical specifications, the main uncertainty being how accurately the nominal lens focal length reflects the true one.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one implied by these physical specifications, the main uncertainty being how accurately the nominal lens focal length reflects the true one.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If &lt;/del&gt;h &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is &lt;/del&gt;the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;With &amp;lt;math&amp;gt; &lt;/ins&gt;h &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/math&amp;gt; &lt;/ins&gt;the width of a pixel in mm, the portable form of the fitted lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image format it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the given sensor dimensions and pixel counts.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To adapt a portable correction to a given image format it is only necessary to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the calibrated &lt;/ins&gt;&amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the given sensor dimensions and pixel counts.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not use any physical parameters.&amp;#160; So as it stands now, portable lens calibrations would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if physical pixel size were added to the PanoTools parameter set, libpano could handle portable lens calibrations autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Unfortunately PanoTools does not use any physical parameters.&amp;#160; So as it stands now, portable lens calibrations would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if physical pixel size were added to the PanoTools parameter set, libpano could handle portable lens calibrations autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13054&amp;oldid=prev</id>
		<title>Tksharpless: /* Portable Correction Coefficients */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13054&amp;oldid=prev"/>
				<updated>2011-01-24T02:27:29Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Portable Correction Coefficients&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:27, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 82:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;and the fitted coefficient values would be portable.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;and the fitted coefficient values would be portable.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Altenratively &lt;/del&gt;the current non-portable coefficients can be converted using data available inside libpano.&amp;#160; With&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Alternatively &lt;/ins&gt;the current non-portable coefficients can be converted using data available inside libpano.&amp;#160; With&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle k = \frac d {r_0}&amp;lt;/math&amp;gt;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle k = \frac d {r_0}&amp;lt;/math&amp;gt;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle w' =&amp;#160; w k &amp;lt;/math&amp;gt;,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle w' =&amp;#160; w k &amp;lt;/math&amp;gt;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	<entry>
		<id>http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13053&amp;oldid=prev</id>
		<title>Tksharpless: /* Fully Portable Corrections */</title>
		<link rel="alternate" type="text/html" href="http://wiki.panotools.org/index.php?title=Lens_Correction_in_PanoTools&amp;diff=13053&amp;oldid=prev"/>
				<updated>2011-01-24T02:24:59Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fully Portable Corrections&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:24, 24 January 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Fully Portable Corrections==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Fully Portable Corrections==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;lens correction &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;parameters &lt;/del&gt;fully portable also requires expressing the fitted focal length &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(and optical center shifts) &lt;/del&gt;in physical units rather than in pixels.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;That &lt;/del&gt;depends on the physical &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pixel size&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;which unfortunately PanoTools does not use&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;If h is the width of a pixel in mm, the portable lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;To make &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/ins&gt;lens correction fully portable also requires expressing the fitted focal length in physical units rather than in pixels.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The focal length in pixels must be known in order to compute, or to apply, any lens calibration, portable or not.&amp;#160; Physically, this quantity &lt;/ins&gt;depends on &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;both lens and camera properties.&amp;#160; In most cases today, equipment manufacturers' specifications provide &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;needed data:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:	&amp;lt;math&amp;gt;\textstyle F = {(focal\ length\ in\ mm)} \frac {image\ width\ in\ pixels} {sensor\ width\ in\ mm}&amp;lt;/math&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;In any practical calibration scheme F is actually an adjustable parameter.&amp;#160; However the fitted value is expected to be quite close to the one implied by these &lt;/ins&gt;physical &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;specifications&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the main uncertainty being how accurately the nominal lens focal length reflects the true one&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If h is the width of a pixel in mm, the portable &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;form of the fitted &lt;/ins&gt;lens focal length is&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:	&amp;lt;math&amp;gt;\textstyle F_{mm}&amp;#160; =&amp;#160; h F_{pixels} =&amp;#160; h e&amp;lt;/math&amp;gt;, scale factor e defined above.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The center shifts can also be converted to mm by multiplying them by h. Or they could be made dimensionless by dividing them by F.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;All that is needed to &lt;/del&gt;adapt &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;portable correction to a given image format is to calculate &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the working &lt;/del&gt;&amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the given sensor dimensions and pixel counts.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;To &lt;/ins&gt;adapt &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/ins&gt;portable correction to a given image format &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it &lt;/ins&gt;is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;only necessary &lt;/ins&gt;to calculate &amp;lt;math&amp;gt;\textstyle F_{pixels} &amp;lt;/math&amp;gt; from &amp;lt;math&amp;gt;\textstyle F_{mm} &amp;lt;/math&amp;gt; and the the given sensor dimensions and pixel counts.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;As &lt;/del&gt;it stands now, portable lens calibrations would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if pixel size were added to the PanoTools parameter set, libpano could &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;provide &lt;/del&gt;portable lens calibrations autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Unfortunately PanoTools does not use any physical parameters.&amp;#160; So as &lt;/ins&gt;it stands now, portable lens calibrations would have to be calculated, saved and restored by front-end software that has access to the camera's sensor size.&amp;#160; But if &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;physical &lt;/ins&gt;pixel size were added to the PanoTools parameter set, libpano could &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;handle &lt;/ins&gt;portable lens calibrations autonomously. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; -- 23 Jan 2010 T K Sharpless&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; -- 23 Jan 2010 T K Sharpless&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Community:Project]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Community:Project]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tksharpless</name></author>	</entry>

	</feed>