<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>lensfun: Image correction</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" async="async" 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  <span id="projectnumber">0.3.2.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Image correction</div> </div> </div><!--header--> <div class="contents"> <p>This group of functions will allow you to apply a image transform that will correct some lens defects. <a href="#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structlfModifier.html">lfModifier</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A modifier object contains optimized data required to rectify a image. <a href="structlfModifier.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:ga1c672cc3a7634400f1e43c38ca2ac6a9"><td class="memItemLeft" align="right" valign="top"><a id="ga1c672cc3a7634400f1e43c38ca2ac6a9"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga1c672cc3a7634400f1e43c38ca2ac6a9">LF_CR_1</a>(a)   (LF_CR_ ## a)</td></tr> <tr class="memdesc:ga1c672cc3a7634400f1e43c38ca2ac6a9"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of one component. <br /></td></tr> <tr class="separator:ga1c672cc3a7634400f1e43c38ca2ac6a9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad76d337a7939fd743d6f7d3513ad9986"><td class="memItemLeft" align="right" valign="top"><a id="gad76d337a7939fd743d6f7d3513ad9986"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gad76d337a7939fd743d6f7d3513ad9986">LF_CR_2</a>(a, b)   ((LF_CR_ ## a) | ((LF_CR_ ## b) << 4))</td></tr> <tr class="memdesc:gad76d337a7939fd743d6f7d3513ad9986"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of two components. <br /></td></tr> <tr class="separator:gad76d337a7939fd743d6f7d3513ad9986"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9b946e37f6e3d0c65ae58de3af174506"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga9b946e37f6e3d0c65ae58de3af174506">LF_CR_3</a>(a, b, c)</td></tr> <tr class="memdesc:ga9b946e37f6e3d0c65ae58de3af174506"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of three components. <a href="#ga9b946e37f6e3d0c65ae58de3af174506">More...</a><br /></td></tr> <tr class="separator:ga9b946e37f6e3d0c65ae58de3af174506"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae3340956c99189894a5efbf2991d8039"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gae3340956c99189894a5efbf2991d8039">LF_CR_4</a>(a, b, c, d)</td></tr> <tr class="memdesc:gae3340956c99189894a5efbf2991d8039"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of four components. <a href="#gae3340956c99189894a5efbf2991d8039">More...</a><br /></td></tr> <tr class="separator:gae3340956c99189894a5efbf2991d8039"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2edf2d1c206bed25ee7953965960b24c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga2edf2d1c206bed25ee7953965960b24c">LF_CR_5</a>(a, b, c, d, e)</td></tr> <tr class="memdesc:ga2edf2d1c206bed25ee7953965960b24c"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of five components. <a href="#ga2edf2d1c206bed25ee7953965960b24c">More...</a><br /></td></tr> <tr class="separator:ga2edf2d1c206bed25ee7953965960b24c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8b23d0fe62cc010a5db276d8867bdc4a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga8b23d0fe62cc010a5db276d8867bdc4a">LF_CR_6</a>(a, b, c, d, e, f)</td></tr> <tr class="memdesc:ga8b23d0fe62cc010a5db276d8867bdc4a"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of six components. <a href="#ga8b23d0fe62cc010a5db276d8867bdc4a">More...</a><br /></td></tr> <tr class="separator:ga8b23d0fe62cc010a5db276d8867bdc4a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga126714f9affb37c42fb43484e972f790"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga126714f9affb37c42fb43484e972f790">LF_CR_7</a>(a, b, c, d, e, f, g)</td></tr> <tr class="memdesc:ga126714f9affb37c42fb43484e972f790"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of seven components. <a href="#ga126714f9affb37c42fb43484e972f790">More...</a><br /></td></tr> <tr class="separator:ga126714f9affb37c42fb43484e972f790"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae4f2c469650e1a64a40cf8cc937a774f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gae4f2c469650e1a64a40cf8cc937a774f">LF_CR_8</a>(a, b, c, d, e, f, g, h)</td></tr> <tr class="memdesc:gae4f2c469650e1a64a40cf8cc937a774f"><td class="mdescLeft"> </td><td class="mdescRight">This macro defines a pixel format consisting of eight components. <a href="#gae4f2c469650e1a64a40cf8cc937a774f">More...</a><br /></td></tr> <tr class="separator:gae4f2c469650e1a64a40cf8cc937a774f"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:ga077f45d25c226258df815a2640a3c504"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga077f45d25c226258df815a2640a3c504">lfSubpixelCoordFunc</a>) (void *data, float *iocoord, int count)</td></tr> <tr class="memdesc:ga077f45d25c226258df815a2640a3c504"><td class="mdescLeft"> </td><td class="mdescRight">A callback function which modifies the separate coordinates for all color components for every pixel in a strip. <a href="#ga077f45d25c226258df815a2640a3c504">More...</a><br /></td></tr> <tr class="separator:ga077f45d25c226258df815a2640a3c504"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad9fd49a4533259a2a148cac4208af681"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gad9fd49a4533259a2a148cac4208af681">lfModifyColorFunc</a>) (void *data, float x, float y, void *pixels, int comp_role, int count)</td></tr> <tr class="memdesc:gad9fd49a4533259a2a148cac4208af681"><td class="mdescLeft"> </td><td class="mdescRight">A callback function which modifies the colors of a strip of pixels. <a href="#gad9fd49a4533259a2a148cac4208af681">More...</a><br /></td></tr> <tr class="separator:gad9fd49a4533259a2a148cac4208af681"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga818a017498e0becacdb3c0d445566b9e"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga818a017498e0becacdb3c0d445566b9e">lfModifyCoordFunc</a>) (void *data, float *iocoord, int count)</td></tr> <tr class="memdesc:ga818a017498e0becacdb3c0d445566b9e"><td class="mdescLeft"> </td><td class="mdescRight">A callback function which modifies the coordinates of a strip of pixels. <a href="#ga818a017498e0becacdb3c0d445566b9e">More...</a><br /></td></tr> <tr class="separator:ga818a017498e0becacdb3c0d445566b9e"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br />   <a class="el" href="group__Correction.html#ggadf764cbdea00d65edcd07bb9953ad2b7a2d151b0e170f0caff31885677d787846">LF_MODIFY_TCA</a> = 0x00000001, <a class="el" href="group__Correction.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6aded8676e2e6da6abe62709d63ee1da">LF_MODIFY_VIGNETTING</a> = 0x00000002, <a class="el" href="group__Correction.html#ggadf764cbdea00d65edcd07bb9953ad2b7a7be69c9a6c86737de2ed4e5bff238086">LF_MODIFY_DISTORTION</a> = 0x00000008, <a class="el" href="group__Correction.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6fa0d1e43f6dbde8c395be838b89ad52">LF_MODIFY_GEOMETRY</a> = 0x00000010, <br />   <a class="el" href="group__Correction.html#ggadf764cbdea00d65edcd07bb9953ad2b7abf173cd4cb15a0c242bd32a5ff840982">LF_MODIFY_SCALE</a> = 0x00000020, <a class="el" href="group__Correction.html#ggadf764cbdea00d65edcd07bb9953ad2b7ae1ab1b372f8b577883344c4d5f7bb2de">LF_MODIFY_ALL</a> = ~0 <br /> }</td></tr> <tr class="memdesc:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="mdescLeft"> </td><td class="mdescRight">A list of bitmask flags used for ordering various image corrections. <a href="group__Correction.html#gadf764cbdea00d65edcd07bb9953ad2b7">More...</a><br /></td></tr> <tr class="separator:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaff4770bc2656179dcfe2da40a25f8148"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">lfPixelFormat</a> { <br />   <a class="el" href="group__Correction.html#ggaff4770bc2656179dcfe2da40a25f8148a95ee1ddd11467921c63bedad9ab5f673">LF_PF_U8</a>, <a class="el" href="group__Correction.html#ggaff4770bc2656179dcfe2da40a25f8148a34308145fbd4e6ed26f853c07451024a">LF_PF_U16</a>, <a class="el" href="group__Correction.html#ggaff4770bc2656179dcfe2da40a25f8148ac5a68f2c2b7b009d716f5343562f52cc">LF_PF_U32</a>, <a class="el" href="group__Correction.html#ggaff4770bc2656179dcfe2da40a25f8148acae6b856776feafff62f27729f3cd91d">LF_PF_F32</a>, <br />   <a class="el" href="group__Correction.html#ggaff4770bc2656179dcfe2da40a25f8148a546d35bf49a5121abcc75c524f15723a">LF_PF_F64</a> <br /> }</td></tr> <tr class="memdesc:gaff4770bc2656179dcfe2da40a25f8148"><td class="mdescLeft"> </td><td class="mdescRight">A list of pixel formats supported by internal colour callbacks. <a href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">More...</a><br /></td></tr> <tr class="separator:gaff4770bc2656179dcfe2da40a25f8148"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf7c5a3f809c2245211b9f50797b718b3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gaf7c5a3f809c2245211b9f50797b718b3">lfComponentRole</a> { <br />   <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3a50dc9df363bc7cdc8d26c2af03079fcd">LF_CR_END</a> = 0, <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3a119239f030e5b172f9f4f33d8291737c">LF_CR_NEXT</a>, <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3abbc2d0f2ccfe68525084f17b7c1e99d7">LF_CR_UNKNOWN</a>, <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3a578b1a8faf7d4ee8e45da6a6db07520b">LF_CR_INTENSITY</a>, <br />   <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3a90448cedee39903ed59ca4b033a5284b">LF_CR_RED</a>, <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3adbab9967fefe3e0aa390717b48ba1bbe">LF_CR_GREEN</a>, <a class="el" href="group__Correction.html#ggaf7c5a3f809c2245211b9f50797b718b3ae6540b2a6338e572c64a03a946259ce8">LF_CR_BLUE</a> <br /> }</td></tr> <tr class="memdesc:gaf7c5a3f809c2245211b9f50797b718b3"><td class="mdescLeft"> </td><td class="mdescRight">These constants define the role of every pixel component, four bits each. "pixel" refers here to a set of values which share the same (x, y) coordinates. <a href="group__Correction.html#gaf7c5a3f809c2245211b9f50797b718b3">More...</a><br /></td></tr> <tr class="separator:gaf7c5a3f809c2245211b9f50797b718b3"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga8303838db121c2073fa3913ca79a4554"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlfModifier.html">lfModifier</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga8303838db121c2073fa3913ca79a4554">lf_modifier_new</a> (const <a class="el" href="structlfLens.html">lfLens</a> *lens, float crop, int width, int height)</td></tr> <tr class="separator:ga8303838db121c2073fa3913ca79a4554"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga21561a6741404b6607c4041883950afa"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga21561a6741404b6607c4041883950afa">lf_modifier_destroy</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier)</td></tr> <tr class="separator:ga21561a6741404b6607c4041883950afa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac181e638055efd67ea0953e2badb3e1b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gac181e638055efd67ea0953e2badb3e1b">lf_modifier_initialize</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, const <a class="el" href="structlfLens.html">lfLens</a> *lens, <a class="el" href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">lfPixelFormat</a> format, float focal, float aperture, float distance, float scale, <a class="el" href="group__Lens.html#gac853bb55ada6a58f12a68f6a1974f764">lfLensType</a> targeom, int flags, <a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> reverse)</td></tr> <tr class="separator:gac181e638055efd67ea0953e2badb3e1b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1afcef84ebeb96d19ef4b1ae27e38812"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga1afcef84ebeb96d19ef4b1ae27e38812">lf_modifier_add_coord_callback</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="group__Correction.html#ga818a017498e0becacdb3c0d445566b9e">lfModifyCoordFunc</a> callback, int priority, void *data, size_t data_size)</td></tr> <tr class="separator:ga1afcef84ebeb96d19ef4b1ae27e38812"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga67ee732ed1b45b7e522ed7e1412f65b9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga67ee732ed1b45b7e522ed7e1412f65b9">lf_modifier_add_subpixel_callback</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="group__Correction.html#ga077f45d25c226258df815a2640a3c504">lfSubpixelCoordFunc</a> callback, int priority, void *data, size_t data_size)</td></tr> <tr class="separator:ga67ee732ed1b45b7e522ed7e1412f65b9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9e01b424bdfc2ea42be7eead5aa8e29f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga9e01b424bdfc2ea42be7eead5aa8e29f">lf_modifier_add_color_callback</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="group__Correction.html#gad9fd49a4533259a2a148cac4208af681">lfModifyColorFunc</a> callback, int priority, void *data, size_t data_size)</td></tr> <tr class="separator:ga9e01b424bdfc2ea42be7eead5aa8e29f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gace5f06c71b3f0dc45f28633a88951a02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gace5f06c71b3f0dc45f28633a88951a02">lf_modifier_add_subpixel_callback_TCA</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="structlfLensCalibTCA.html">lfLensCalibTCA</a> *model, <a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> reverse)</td></tr> <tr class="separator:gace5f06c71b3f0dc45f28633a88951a02"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6e3da166a2737507db8bd8e5c5867932"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga6e3da166a2737507db8bd8e5c5867932">lf_modifier_add_color_callback_vignetting</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="structlfLensCalibVignetting.html">lfLensCalibVignetting</a> *model, <a class="el" href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">lfPixelFormat</a> format, <a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> reverse)</td></tr> <tr class="separator:ga6e3da166a2737507db8bd8e5c5867932"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab5c5d8ac841d14eb5cb0c3c1493ef3ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gab5c5d8ac841d14eb5cb0c3c1493ef3ed">lf_modifier_add_coord_callback_distortion</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="structlfLensCalibDistortion.html">lfLensCalibDistortion</a> *model, <a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> reverse)</td></tr> <tr class="separator:gab5c5d8ac841d14eb5cb0c3c1493ef3ed"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaef534f6ab0db7b0c40fd3ce65d8c4edd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gaef534f6ab0db7b0c40fd3ce65d8c4edd">lf_modifier_add_coord_callback_geometry</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="group__Lens.html#gac853bb55ada6a58f12a68f6a1974f764">lfLensType</a> from, <a class="el" href="group__Lens.html#gac853bb55ada6a58f12a68f6a1974f764">lfLensType</a> to, float focal)</td></tr> <tr class="separator:gaef534f6ab0db7b0c40fd3ce65d8c4edd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2b7e96c8e8e4bc781f2c6d9605c1a987"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga2b7e96c8e8e4bc781f2c6d9605c1a987">lf_modifier_add_coord_callback_scale</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, float scale, <a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> reverse)</td></tr> <tr class="separator:ga2b7e96c8e8e4bc781f2c6d9605c1a987"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga743f0f4230f6a24d115371580d4b1f4a"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga743f0f4230f6a24d115371580d4b1f4a">lf_modifier_get_auto_scale</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, <a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> reverse)</td></tr> <tr class="separator:ga743f0f4230f6a24d115371580d4b1f4a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0c4518f06345bc131d3cbcf9bf9d67ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga0c4518f06345bc131d3cbcf9bf9d67ac">lf_modifier_apply_subpixel_distortion</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, float xu, float yu, int width, int height, float *res)</td></tr> <tr class="separator:ga0c4518f06345bc131d3cbcf9bf9d67ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3e9a6f97e1bc88a649d44ca615502ecf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga3e9a6f97e1bc88a649d44ca615502ecf">lf_modifier_apply_color_modification</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, void *pixels, float x, float y, int width, int height, int comp_role, int row_stride)</td></tr> <tr class="separator:ga3e9a6f97e1bc88a649d44ca615502ecf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga91bbc276ea7911bd7ad30a8c6f1fcbbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#ga91bbc276ea7911bd7ad30a8c6f1fcbbc">lf_modifier_apply_geometry_distortion</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, float xu, float yu, int width, int height, float *res)</td></tr> <tr class="separator:ga91bbc276ea7911bd7ad30a8c6f1fcbbc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab48dc9e0ab9a4837187c69d3b92afef3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Correction.html#gab48dc9e0ab9a4837187c69d3b92afef3">lf_modifier_apply_subpixel_geometry_distortion</a> (<a class="el" href="structlfModifier.html">lfModifier</a> *modifier, float xu, float yu, int width, int height, float *res)</td></tr> <tr class="separator:gab48dc9e0ab9a4837187c69d3b92afef3"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>This group of functions will allow you to apply a image transform that will correct some lens defects. </p> <h2 class="groupheader">Macro Definition Documentation</h2> <a id="ga9b946e37f6e3d0c65ae58de3af174506"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga9b946e37f6e3d0c65ae58de3af174506">◆ </a></span>LF_CR_3</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LF_CR_3</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">c </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \</div><div class="line"> ((LF_CR_ ## c) << 8))</div></div><!-- fragment --> <p>This macro defines a pixel format consisting of three components. </p> </div> </div> <a id="gae3340956c99189894a5efbf2991d8039"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae3340956c99189894a5efbf2991d8039">◆ </a></span>LF_CR_4</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LF_CR_4</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">c, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">d </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \</div><div class="line"> ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12))</div></div><!-- fragment --> <p>This macro defines a pixel format consisting of four components. </p> <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="lenstool_8cpp-example.html#a20">lenstool.cpp</a>.</dd> </dl> </div> </div> <a id="ga2edf2d1c206bed25ee7953965960b24c"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga2edf2d1c206bed25ee7953965960b24c">◆ </a></span>LF_CR_5</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LF_CR_5</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">c, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">d, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">e </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \</div><div class="line"> ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \</div><div class="line"> ((LF_CR_ ## e) << 16))</div></div><!-- fragment --> <p>This macro defines a pixel format consisting of five components. </p> </div> </div> <a id="ga8b23d0fe62cc010a5db276d8867bdc4a"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga8b23d0fe62cc010a5db276d8867bdc4a">◆ </a></span>LF_CR_6</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LF_CR_6</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">c, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">d, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">e, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">f </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \</div><div class="line"> ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \</div><div class="line"> ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20))</div></div><!-- fragment --> <p>This macro defines a pixel format consisting of six components. </p> </div> </div> <a id="ga126714f9affb37c42fb43484e972f790"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga126714f9affb37c42fb43484e972f790">◆ </a></span>LF_CR_7</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LF_CR_7</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">c, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">d, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">e, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">f, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">g </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \</div><div class="line"> ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \</div><div class="line"> ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20) | \</div><div class="line"> ((LF_CR_ ## g) << 24))</div></div><!-- fragment --> <p>This macro defines a pixel format consisting of seven components. </p> </div> </div> <a id="gae4f2c469650e1a64a40cf8cc937a774f"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae4f2c469650e1a64a40cf8cc937a774f">◆ </a></span>LF_CR_8</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LF_CR_8</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">a, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">c, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">d, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">e, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">f, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">g, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">h </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">((LF_CR_ ## a) | ((LF_CR_ ## b) << 4) | \</div><div class="line"> ((LF_CR_ ## c) << 8) | ((LF_CR_ ## d) << 12) | \</div><div class="line"> ((LF_CR_ ## e) << 16) | ((LF_CR_ ## f) << 20) | \</div><div class="line"> ((LF_CR_ ## g) << 24) | ((LF_CR_ ## h) << 28))</div></div><!-- fragment --> <p>This macro defines a pixel format consisting of eight components. </p> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a id="gad9fd49a4533259a2a148cac4208af681"></a> <h2 class="memtitle"><span class="permalink"><a href="#gad9fd49a4533259a2a148cac4208af681">◆ </a></span>lfModifyColorFunc</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* lfModifyColorFunc) (void *data, float x, float y, void *pixels, int comp_role, int count)</td> </tr> </table> </div><div class="memdoc"> <p>A callback function which modifies the colors of a strip of pixels. </p> <p>This kind of callbacks are used in the first stage of image modification. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">data</td><td>A opaque pointer to some data. </td></tr> <tr><td class="paramname">x</td><td>The X coordinate of the beginning of the strip. For next pixels the X coordinate increments sequentialy. </td></tr> <tr><td class="paramname">y</td><td>The Y coordinate of the pixel strip. This is a constant across all pixels of the strip. </td></tr> <tr><td class="paramname">pixels</td><td>A pointer to pixel data. It is the responsability of the function inserting the callback into the chain to provide a callback operating with the correct pixel format. </td></tr> <tr><td class="paramname">comp_role</td><td>The role of every pixel component. This is a bitfield, made by one of the LF_CR_X macros which defines the roles of every pixel field. For example, <a class="el" href="group__Correction.html#gae3340956c99189894a5efbf2991d8039" title="This macro defines a pixel format consisting of four components.">LF_CR_4(RED,GREEN,BLUE,UNKNOWN)</a> will define a RGBA (or RGBX) pixel format, and the UNKNOWN field will not be modified. </td></tr> <tr><td class="paramname">count</td><td>Number of pixels to process. </td></tr> </table> </dd> </dl> </div> </div> <a id="ga818a017498e0becacdb3c0d445566b9e"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga818a017498e0becacdb3c0d445566b9e">◆ </a></span>lfModifyCoordFunc</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* lfModifyCoordFunc) (void *data, float *iocoord, int count)</td> </tr> </table> </div><div class="memdoc"> <p>A callback function which modifies the coordinates of a strip of pixels. </p> <p>This kind of callbacks are used in third stage of image modification. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">data</td><td>A opaque pointer to some data. </td></tr> <tr><td class="paramname">iocoord</td><td>A pointer to an array <em>count</em> pixel coordinates (X,Y). The function must replace the coordinates with their new values. </td></tr> <tr><td class="paramname">count</td><td>Number of coordinate groups to handle. </td></tr> </table> </dd> </dl> </div> </div> <a id="ga077f45d25c226258df815a2640a3c504"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga077f45d25c226258df815a2640a3c504">◆ </a></span>lfSubpixelCoordFunc</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* lfSubpixelCoordFunc) (void *data, float *iocoord, int count)</td> </tr> </table> </div><div class="memdoc"> <p>A callback function which modifies the separate coordinates for all color components for every pixel in a strip. </p> <p>This kind of callbacks are used in the second stage of image modification. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">data</td><td>A opaque pointer to some data. </td></tr> <tr><td class="paramname">iocoord</td><td>A pointer to an array of count*3 pixel coordinates (X,Y). The first coordinate pair is for the R component, second for G and third for B of same pixel. There are count*2*3 floats total in this array. </td></tr> <tr><td class="paramname">count</td><td>Number of coordinate groups to handle. </td></tr> </table> </dd> </dl> </div> </div> <h2 class="groupheader">Enumeration Type Documentation</h2> <a id="gadf764cbdea00d65edcd07bb9953ad2b7"></a> <h2 class="memtitle"><span class="permalink"><a href="#gadf764cbdea00d65edcd07bb9953ad2b7">◆ </a></span>anonymous enum</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum</td> </tr> </table> </div><div class="memdoc"> <p>A list of bitmask flags used for ordering various image corrections. </p> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggadf764cbdea00d65edcd07bb9953ad2b7a2d151b0e170f0caff31885677d787846"></a>LF_MODIFY_TCA </td><td class="fielddoc"><p>Correct (or apply) lens transversal chromatic aberrations </p> </td></tr> <tr><td class="fieldname"><a id="ggadf764cbdea00d65edcd07bb9953ad2b7a6aded8676e2e6da6abe62709d63ee1da"></a>LF_MODIFY_VIGNETTING </td><td class="fielddoc"><p>Correct (or apply) lens vignetting </p> </td></tr> <tr><td class="fieldname"><a id="ggadf764cbdea00d65edcd07bb9953ad2b7a7be69c9a6c86737de2ed4e5bff238086"></a>LF_MODIFY_DISTORTION </td><td class="fielddoc"><p>Correct (or apply) lens distortion </p> </td></tr> <tr><td class="fieldname"><a id="ggadf764cbdea00d65edcd07bb9953ad2b7a6fa0d1e43f6dbde8c395be838b89ad52"></a>LF_MODIFY_GEOMETRY </td><td class="fielddoc"><p>Convert image geometry </p> </td></tr> <tr><td class="fieldname"><a id="ggadf764cbdea00d65edcd07bb9953ad2b7abf173cd4cb15a0c242bd32a5ff840982"></a>LF_MODIFY_SCALE </td><td class="fielddoc"><p>Additional resize of image </p> </td></tr> <tr><td class="fieldname"><a id="ggadf764cbdea00d65edcd07bb9953ad2b7ae1ab1b372f8b577883344c4d5f7bb2de"></a>LF_MODIFY_ALL </td><td class="fielddoc"><p>Apply all possible corrections </p> </td></tr> </table> </div> </div> <a id="gaf7c5a3f809c2245211b9f50797b718b3"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaf7c5a3f809c2245211b9f50797b718b3">◆ </a></span>lfComponentRole</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__Correction.html#gaf7c5a3f809c2245211b9f50797b718b3">lfComponentRole</a></td> </tr> </table> </div><div class="memdoc"> <p>These constants define the role of every pixel component, four bits each. "pixel" refers here to a set of values which share the same (x, y) coordinates. </p> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3a50dc9df363bc7cdc8d26c2af03079fcd"></a>LF_CR_END </td><td class="fielddoc"><p>This marks the end of the role list. It doesn't have to be specified explicitly, since LF_CR_X macros always pad the value with zeros </p> </td></tr> <tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3a119239f030e5b172f9f4f33d8291737c"></a>LF_CR_NEXT </td><td class="fielddoc"><p>This value tells that what follows applies to next pixel. This can be used to define Bayer images, e.g. use <a class="el" href="group__Correction.html#ga9b946e37f6e3d0c65ae58de3af174506" title="This macro defines a pixel format consisting of three components.">LF_CR_3(LF_CR_RED, LF_CR_NEXT, LF_CR_GREEN)</a> for even rows and <a class="el" href="group__Correction.html#ga9b946e37f6e3d0c65ae58de3af174506" title="This macro defines a pixel format consisting of three components.">LF_CR_3(LF_CR_GREEN, LF_CR_NEXT, LF_CR_BLUE)</a> for odd rows. </p> </td></tr> <tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3abbc2d0f2ccfe68525084f17b7c1e99d7"></a>LF_CR_UNKNOWN </td><td class="fielddoc"><p>This component has an unknown/doesn't matter role </p> </td></tr> <tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3a578b1a8faf7d4ee8e45da6a6db07520b"></a>LF_CR_INTENSITY </td><td class="fielddoc"><p>This is the pixel intensity (grayscale) </p> </td></tr> <tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3a90448cedee39903ed59ca4b033a5284b"></a>LF_CR_RED </td><td class="fielddoc"><p>This is the Red pixel component </p> </td></tr> <tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3adbab9967fefe3e0aa390717b48ba1bbe"></a>LF_CR_GREEN </td><td class="fielddoc"><p>This is the Green pixel component </p> </td></tr> <tr><td class="fieldname"><a id="ggaf7c5a3f809c2245211b9f50797b718b3ae6540b2a6338e572c64a03a946259ce8"></a>LF_CR_BLUE </td><td class="fielddoc"><p>This is the Blue pixel component </p> </td></tr> </table> </div> </div> <a id="gaff4770bc2656179dcfe2da40a25f8148"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaff4770bc2656179dcfe2da40a25f8148">◆ </a></span>lfPixelFormat</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">lfPixelFormat</a></td> </tr> </table> </div><div class="memdoc"> <p>A list of pixel formats supported by internal colour callbacks. </p> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaff4770bc2656179dcfe2da40a25f8148a95ee1ddd11467921c63bedad9ab5f673"></a>LF_PF_U8 </td><td class="fielddoc"><p>Unsigned 8-bit R,G,B </p> </td></tr> <tr><td class="fieldname"><a id="ggaff4770bc2656179dcfe2da40a25f8148a34308145fbd4e6ed26f853c07451024a"></a>LF_PF_U16 </td><td class="fielddoc"><p>Unsigned 16-bit R,G,B </p> </td></tr> <tr><td class="fieldname"><a id="ggaff4770bc2656179dcfe2da40a25f8148ac5a68f2c2b7b009d716f5343562f52cc"></a>LF_PF_U32 </td><td class="fielddoc"><p>Unsigned 32-bit R,G,B </p> </td></tr> <tr><td class="fieldname"><a id="ggaff4770bc2656179dcfe2da40a25f8148acae6b856776feafff62f27729f3cd91d"></a>LF_PF_F32 </td><td class="fielddoc"><p>32-bit floating-point R,G,B </p> </td></tr> <tr><td class="fieldname"><a id="ggaff4770bc2656179dcfe2da40a25f8148a546d35bf49a5121abcc75c524f15723a"></a>LF_PF_F64 </td><td class="fielddoc"><p>64-bit floating-point R,G,B </p> </td></tr> </table> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="ga9e01b424bdfc2ea42be7eead5aa8e29f"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga9e01b424bdfc2ea42be7eead5aa8e29f">◆ </a></span>lf_modifier_add_color_callback()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void lf_modifier_add_color_callback </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Correction.html#gad9fd49a4533259a2a148cac4208af681">lfModifyColorFunc</a> </td> <td class="paramname"><em>callback</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>priority</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>data_size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a29a0eec139e4dbdbefbbb276a5aa909d" title="Add a user-defined callback to the color modification chain.">lfModifier::AddColorCallback</a> </dd></dl> </div> </div> <a id="ga6e3da166a2737507db8bd8e5c5867932"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga6e3da166a2737507db8bd8e5c5867932">◆ </a></span>lf_modifier_add_color_callback_vignetting()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_add_color_callback_vignetting </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structlfLensCalibVignetting.html">lfLensCalibVignetting</a> * </td> <td class="paramname"><em>model</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">lfPixelFormat</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td> <td class="paramname"><em>reverse</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#ac53699fb065c16d790159d3620e2bcce" title="Add the stock lens vignetting correcting callback into the chain. The vignetting correction callback ...">lfModifier::AddColorCallbackVignetting</a> </dd></dl> </div> </div> <a id="ga1afcef84ebeb96d19ef4b1ae27e38812"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga1afcef84ebeb96d19ef4b1ae27e38812">◆ </a></span>lf_modifier_add_coord_callback()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void lf_modifier_add_coord_callback </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Correction.html#ga818a017498e0becacdb3c0d445566b9e">lfModifyCoordFunc</a> </td> <td class="paramname"><em>callback</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>priority</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>data_size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#ac9d687f9ba8ca71ead2ccb22b0cdc7f0" title="Add a user-defined callback to the coordinate correction chain.">lfModifier::AddCoordCallback</a> </dd></dl> </div> </div> <a id="gab5c5d8ac841d14eb5cb0c3c1493ef3ed"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab5c5d8ac841d14eb5cb0c3c1493ef3ed">◆ </a></span>lf_modifier_add_coord_callback_distortion()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_add_coord_callback_distortion </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structlfLensCalibDistortion.html">lfLensCalibDistortion</a> * </td> <td class="paramname"><em>model</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td> <td class="paramname"><em>reverse</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a7667794487035d913d42767cdc063ba6" title="Add the stock lens distortion correcting callback into the chain.">lfModifier::AddCoordCallbackDistortion</a> </dd></dl> </div> </div> <a id="gaef534f6ab0db7b0c40fd3ce65d8c4edd"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaef534f6ab0db7b0c40fd3ce65d8c4edd">◆ </a></span>lf_modifier_add_coord_callback_geometry()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_add_coord_callback_geometry </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Lens.html#gac853bb55ada6a58f12a68f6a1974f764">lfLensType</a> </td> <td class="paramname"><em>from</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Lens.html#gac853bb55ada6a58f12a68f6a1974f764">lfLensType</a> </td> <td class="paramname"><em>to</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>focal</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a361c472d729bfe1f2d981073eb87d6bd" title="Add the stock lens geometry rectification callback into the chain.">lfModifier::AddCoordCallbackGeometry</a> </dd></dl> </div> </div> <a id="ga2b7e96c8e8e4bc781f2c6d9605c1a987"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga2b7e96c8e8e4bc781f2c6d9605c1a987">◆ </a></span>lf_modifier_add_coord_callback_scale()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_add_coord_callback_scale </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>scale</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td> <td class="paramname"><em>reverse</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a1881133172446fefd2362ae69b6b8008" title="Add the stock image scaling callback into the chain.">lfModifier::AddCoordCallbackScale</a> </dd></dl> </div> </div> <a id="ga67ee732ed1b45b7e522ed7e1412f65b9"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga67ee732ed1b45b7e522ed7e1412f65b9">◆ </a></span>lf_modifier_add_subpixel_callback()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void lf_modifier_add_subpixel_callback </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Correction.html#ga077f45d25c226258df815a2640a3c504">lfSubpixelCoordFunc</a> </td> <td class="paramname"><em>callback</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>priority</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>data_size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a498ad7a647aa056fc4d6bb0546fd0c64" title="Add a user-defined callback to the subpixel coordinate rectification chain.">lfModifier::AddSubpixelCallback</a> </dd></dl> </div> </div> <a id="gace5f06c71b3f0dc45f28633a88951a02"></a> <h2 class="memtitle"><span class="permalink"><a href="#gace5f06c71b3f0dc45f28633a88951a02">◆ </a></span>lf_modifier_add_subpixel_callback_TCA()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_add_subpixel_callback_TCA </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structlfLensCalibTCA.html">lfLensCalibTCA</a> * </td> <td class="paramname"><em>model</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td> <td class="paramname"><em>reverse</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#abe161b1d566e44a09262b430a50efaad" title="Add the stock TCA correcting callback into the chain.">lfModifier::AddSubpixelCallbackTCA</a> </dd></dl> </div> </div> <a id="ga3e9a6f97e1bc88a649d44ca615502ecf"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga3e9a6f97e1bc88a649d44ca615502ecf">◆ </a></span>lf_modifier_apply_color_modification()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_apply_color_modification </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>pixels</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>height</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>comp_role</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>row_stride</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a6ea5562a78c04946fc945237d318c669" title="Image correction step 1: fix image colors.">lfModifier::ApplyColorModification</a> </dd></dl> </div> </div> <a id="ga91bbc276ea7911bd7ad30a8c6f1fcbbc"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga91bbc276ea7911bd7ad30a8c6f1fcbbc">◆ </a></span>lf_modifier_apply_geometry_distortion()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_apply_geometry_distortion </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>xu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>yu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>height</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float * </td> <td class="paramname"><em>res</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a7739fa851629890b9daa04fef9979ab9" title="Image correction step 2: apply the transforms on a block of pixel coordinates.">lfModifier::ApplyGeometryDistortion</a> </dd></dl> </div> </div> <a id="ga0c4518f06345bc131d3cbcf9bf9d67ac"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga0c4518f06345bc131d3cbcf9bf9d67ac">◆ </a></span>lf_modifier_apply_subpixel_distortion()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_apply_subpixel_distortion </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>xu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>yu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>height</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float * </td> <td class="paramname"><em>res</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#aa08d14d032746c06603fb6410ad5ecd6" title="Image correction step 3: apply subpixel distortions.">lfModifier::ApplySubpixelDistortion</a> </dd></dl> </div> </div> <a id="gab48dc9e0ab9a4837187c69d3b92afef3"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab48dc9e0ab9a4837187c69d3b92afef3">◆ </a></span>lf_modifier_apply_subpixel_geometry_distortion()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> lf_modifier_apply_subpixel_geometry_distortion </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>xu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>yu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>height</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float * </td> <td class="paramname"><em>res</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a6726fa1203f35f0850ae18719a759d92" title="Apply stage 2 & 3 in one step.">lfModifier::ApplySubpixelGeometryDistortion</a> </dd></dl> </div> </div> <a id="ga21561a6741404b6607c4041883950afa"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga21561a6741404b6607c4041883950afa">◆ </a></span>lf_modifier_destroy()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void lf_modifier_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a151fb5b2976d7f0eac935e6d6301051c" title="Destroy the modifier object.">lfModifier::Destroy</a> </dd></dl> </div> </div> <a id="ga743f0f4230f6a24d115371580d4b1f4a"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga743f0f4230f6a24d115371580d4b1f4a">◆ </a></span>lf_modifier_get_auto_scale()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float lf_modifier_get_auto_scale </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td> <td class="paramname"><em>reverse</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#adaaf04bd6a1c32dab998dfc763f98692" title="Compute the automatic scale factor for the image.">lfModifier::GetAutoScale</a> </dd></dl> </div> </div> <a id="gac181e638055efd67ea0953e2badb3e1b"></a> <h2 class="memtitle"><span class="permalink"><a href="#gac181e638055efd67ea0953e2badb3e1b">◆ </a></span>lf_modifier_initialize()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int lf_modifier_initialize </td> <td>(</td> <td class="paramtype"><a class="el" href="structlfModifier.html">lfModifier</a> * </td> <td class="paramname"><em>modifier</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structlfLens.html">lfLens</a> * </td> <td class="paramname"><em>lens</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Correction.html#gaff4770bc2656179dcfe2da40a25f8148">lfPixelFormat</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>focal</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>aperture</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>distance</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>scale</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Lens.html#gac853bb55ada6a58f12a68f6a1974f764">lfLensType</a> </td> <td class="paramname"><em>targeom</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Auxiliary.html#gaf022c6523998cec18c6b369c68fe1dce">cbool</a> </td> <td class="paramname"><em>reverse</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#a15fc45849ffb7f7f0f815025d4994ccd" title="Initialize the process of correcting aberrations in a image.">lfModifier::Initialize</a> </dd></dl> </div> </div> <a id="ga8303838db121c2073fa3913ca79a4554"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga8303838db121c2073fa3913ca79a4554">◆ </a></span>lf_modifier_new()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structlfModifier.html">lfModifier</a>* lf_modifier_new </td> <td>(</td> <td class="paramtype">const <a class="el" href="structlfLens.html">lfLens</a> * </td> <td class="paramname"><em>lens</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>crop</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>width</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>height</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <dl class="section see"><dt>See also</dt><dd><a class="el" href="structlfModifier.html#ab2505a40e681792e496bcb7289a3cd6e" title="Create a empty image modifier object.">lfModifier::Create</a> </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Oct 3 2019 15:07:50 for lensfun by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.15 </small></address> </body> </html>