<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenCV on Yaohong</title><link>https://yh.timefriend.vip/tags/opencv/</link><description>Recent content in OpenCV on Yaohong</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 29 Apr 2021 18:36:00 +0800</lastBuildDate><atom:link href="https://yh.timefriend.vip/tags/opencv/index.xml" rel="self" type="application/rss+xml"/><item><title>Use Opencv stitching_detailed To Stitch Segmentation image</title><link>https://yh.timefriend.vip/post/machinelearning/cv/useopencvstitching_detailedtostitchsegmentation/</link><pubDate>Thu, 29 Apr 2021 18:36:00 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/cv/useopencvstitching_detailedtostitchsegmentation/</guid><description>&lt;h1 id="use-opencv-stitching_detailed-to-stitch-segmentation-image"&gt;Use Opencv stitching_detailed To Stitch Segmentation image&lt;/h1&gt;&#10;&lt;p&gt;Environment:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;python version 3.7&#10;opencv-python version 4.5.1.48&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;1.Download &lt;a href="https://github.com/opencv/opencv/blob/master/samples/python/stitching_detailed.py"&gt;stitching_detailed&lt;/a&gt; file save it with file name &lt;code&gt;stitching_detailed.py&lt;/code&gt;;&lt;/p&gt;&#10;&lt;p&gt;2.Run the command;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$python.exe stitching_detailed.py image_1.png image_2.png image_3.png image_4.png image_5.png image_6.png image_7.png image_8.png image_9.png origin.png --features=brisk --matcher=affine&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that: image &lt;code&gt;1~9&lt;/code&gt; is Segmentation images and &lt;code&gt;origin.png&lt;/code&gt; is a full picture.&lt;/p&gt;&#10;&lt;p&gt;REFERENCE:&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/opencv/opencv/blob/master/samples/python/stitching_detailed.py"&gt;stitching_detailed&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;stitching_detailed.py&lt;/code&gt; source codes is follow:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Stitching sample (advanced)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;===========================&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;Show how to use Stitcher API from python.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Python 2/3 compatibility&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; __future__ &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; print_function&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; argparse&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;from&lt;/span&gt; collections &lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; OrderedDict&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; cv2 &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; cv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EXPOS_COMP_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; OrderedDict()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EXPOS_COMP_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;gain_blocks&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_GAIN_BLOCKS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EXPOS_COMP_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;gain&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_GAIN&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EXPOS_COMP_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;channel&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_CHANNELS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EXPOS_COMP_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;channel_blocks&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_CHANNELS_BLOCKS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;EXPOS_COMP_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;no&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_NO&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BA_COST_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; OrderedDict()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BA_COST_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;ray&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_BundleAdjusterRay&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BA_COST_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;reproj&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_BundleAdjusterReproj&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BA_COST_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;affine&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_BundleAdjusterAffinePartial&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BA_COST_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;no&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_NoBundleAdjuster&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FEATURES_FIND_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; OrderedDict()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;xfeatures2d_SURF&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;create() &lt;span style="color:#6272a4"&gt;# check if the function can be called&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FEATURES_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;surf&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;xfeatures2d_SURF&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;create&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;except&lt;/span&gt; (AttributeError, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;error) &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; e:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;SURF not available&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# if SURF not available, ORB is default&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FEATURES_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;orb&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ORB&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;create&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FEATURES_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;sift&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;xfeatures2d_SIFT&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;create&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;except&lt;/span&gt; AttributeError:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;SIFT not available&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FEATURES_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;brisk&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BRISK_create&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;except&lt;/span&gt; AttributeError:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;BRISK not available&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;try&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FEATURES_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;akaze&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;AKAZE_create&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;except&lt;/span&gt; AttributeError:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;AKAZE not available&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; OrderedDict()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;gc_color&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_GraphCutSeamFinder(&lt;span style="color:#f1fa8c"&gt;&amp;#39;COST_COLOR&amp;#39;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;gc_colorgrad&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_GraphCutSeamFinder(&lt;span style="color:#f1fa8c"&gt;&amp;#39;COST_COLOR_GRAD&amp;#39;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;dp_color&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_DpSeamFinder(&lt;span style="color:#f1fa8c"&gt;&amp;#39;COLOR&amp;#39;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;dp_colorgrad&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_DpSeamFinder(&lt;span style="color:#f1fa8c"&gt;&amp;#39;COLOR_GRAD&amp;#39;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;voronoi&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SeamFinder_createDefault(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SeamFinder_VORONOI_SEAM)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SEAM_FIND_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;no&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SeamFinder_createDefault(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;SeamFinder_NO)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ESTIMATOR_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; OrderedDict()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ESTIMATOR_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;homography&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_HomographyBasedEstimator&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ESTIMATOR_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;affine&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_AffineBasedEstimator&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WARP_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;spherical&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;plane&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;affine&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;cylindrical&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;fisheye&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;stereographic&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;compressedPlaneA2B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;compressedPlaneA1.5B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;compressedPlanePortraitA2B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;compressedPlanePortraitA1.5B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;paniniA2B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;paniniA1.5B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;paniniPortraitA2B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;paniniPortraitA1.5B1&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;mercator&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;transverseMercator&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WAVE_CORRECT_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; OrderedDict()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WAVE_CORRECT_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;horiz&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;WAVE_CORRECT_HORIZ&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WAVE_CORRECT_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;no&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WAVE_CORRECT_CHOICES[&lt;span style="color:#f1fa8c"&gt;&amp;#39;vert&amp;#39;&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;WAVE_CORRECT_VERT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BLEND_CHOICES &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (&lt;span style="color:#f1fa8c"&gt;&amp;#39;multiband&amp;#39;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#39;feather&amp;#39;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#39;no&amp;#39;&lt;/span&gt;,)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; argparse&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ArgumentParser(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; prog&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;stitching_detailed.py&amp;#34;&lt;/span&gt;, description&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Rotation model images stitcher&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;img_names&amp;#39;&lt;/span&gt;, nargs&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;+&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Files to stitch&amp;#34;&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--try_cuda&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Try to use CUDA. The default value is no. All default values are for CPU mode.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;bool&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;try_cuda&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--work_megapix&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.6&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Resolution for image registration step. The default is 0.6 Mpx&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;work_megapix&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--features&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(FEATURES_FIND_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Type of features used for images matching. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(FEATURES_FIND_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;FEATURES_FIND_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;features&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--matcher&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;homography&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Matcher used for pairwise image matching. The default is &amp;#39;homography&amp;#39;.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#39;homography&amp;#39;&lt;/span&gt;, &lt;span style="color:#f1fa8c"&gt;&amp;#39;affine&amp;#39;&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;matcher&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--estimator&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(ESTIMATOR_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Type of estimator used for transformation estimation. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(ESTIMATOR_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;ESTIMATOR_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;estimator&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--match_conf&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Confidence for feature matching step. The default is 0.3 for ORB and 0.65 for other feature types.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;match_conf&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--conf_thresh&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.0&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Threshold for two images are from the same panorama confidence.The default is 1.0.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;conf_thresh&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--ba&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(BA_COST_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Bundle adjustment cost function. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(BA_COST_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;BA_COST_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;ba&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--ba_refine_mask&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;xxxxx&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Set refinement mask for bundle adjustment. It looks like &amp;#39;x_xxx&amp;#39;, &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;where &amp;#39;x&amp;#39; means refine respective parameter and &amp;#39;_&amp;#39; means don&amp;#39;t refine, &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;and has the following format:&amp;lt;fx&amp;gt;&amp;lt;skew&amp;gt;&amp;lt;ppx&amp;gt;&amp;lt;aspect&amp;gt;&amp;lt;ppy&amp;gt;. &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;The default mask is &amp;#39;xxxxx&amp;#39;. &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;If bundle adjustment doesn&amp;#39;t support estimation of selected parameter then &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;the respective flag is ignored.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;ba_refine_mask&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--wave_correct&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(WAVE_CORRECT_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Perform wave effect correction. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(WAVE_CORRECT_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;WAVE_CORRECT_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;wave_correct&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--save_graph&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Save matches graph represented in DOT language to &amp;lt;file_name&amp;gt; file.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;save_graph&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--warp&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;WARP_CHOICES[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Warp surface type. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; WARP_CHOICES[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;WARP_CHOICES,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;warp&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--seam_megapix&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Resolution for seam estimation step. The default is 0.1 Mpx.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;seam_megapix&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--seam&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(SEAM_FIND_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Seam estimation method. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(SEAM_FIND_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;SEAM_FIND_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;seam&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--compose_megapix&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Resolution for compositing step. Use -1 for original resolution. The default is -1&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;compose_megapix&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--expos_comp&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(EXPOS_COMP_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Exposure compensation method. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;(EXPOS_COMP_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys())[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;EXPOS_COMP_CHOICES&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;keys(),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;expos_comp&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--expos_comp_nr_feeds&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Number of exposure compensation feed.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;int32, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;expos_comp_nr_feeds&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--expos_comp_nr_filtering&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Number of filtering iterations of the exposure compensation gains.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;float&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;expos_comp_nr_filtering&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--expos_comp_block_size&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;32&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;BLock size in pixels used by the exposure compensator. The default is 32.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;int32, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;expos_comp_block_size&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--blend&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;BLEND_CHOICES[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Blending method. The default is &amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;%s&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;.&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; BLEND_CHOICES[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; choices&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;BLEND_CHOICES,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;blend&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--blend_strength&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Blending strength from [0,100] range. The default is 5&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;int32, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;blend_strength&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--output&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;result.jpg&amp;#39;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;The default is &amp;#39;result.jpg&amp;#39;&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;output&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--timelapse&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Output warped images separately as frames of a time lapse movie, &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;with &amp;#39;fixed_&amp;#39; prepended to input file names.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;str&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;timelapse&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add_argument(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;--rangewidth&amp;#39;&lt;/span&gt;, action&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;store&amp;#39;&lt;/span&gt;, default&lt;span style="color:#ff79c6"&gt;=-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; help&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;uses range_width to limit number of images to match with.&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;, dest&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;rangewidth&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;__doc__&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;format_help()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;get_matcher&lt;/span&gt;(args):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; try_cuda &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;try_cuda&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; matcher_type &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;matcher&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;match_conf &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;features &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;orb&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; match_conf &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0.3&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; match_conf &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0.65&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; match_conf &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;match_conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; range_width &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rangewidth&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; matcher_type &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;affine&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; matcher &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_AffineBestOf2NearestMatcher(&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;, try_cuda, match_conf)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; range_width &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; matcher &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BestOf2NearestMatcher_create(try_cuda, match_conf)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; matcher &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BestOf2NearestRangeMatcher_create(range_width, try_cuda, match_conf)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; matcher&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;get_compensator&lt;/span&gt;(args):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; expos_comp_type &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; EXPOS_COMP_CHOICES[args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;expos_comp]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; expos_comp_nr_feeds &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;expos_comp_nr_feeds&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; expos_comp_block_size &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;expos_comp_block_size&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# expos_comp_nr_filtering = args.expos_comp_nr_filtering&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; expos_comp_type &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_CHANNELS:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compensator &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_ChannelsCompensator(expos_comp_nr_feeds)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# compensator.setNrGainsFilteringIterations(expos_comp_nr_filtering)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; expos_comp_type &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_CHANNELS_BLOCKS:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compensator &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_BlocksChannelsCompensator(&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; expos_comp_block_size, expos_comp_block_size,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; expos_comp_nr_feeds&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; )&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# compensator.setNrGainsFilteringIterations(expos_comp_nr_filtering)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compensator &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ExposureCompensator_createDefault(expos_comp_type)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; compensator&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;main&lt;/span&gt;():&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; args &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; parser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;parse_args()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_names &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;img_names&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(img_names)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; work_megapix &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;work_megapix&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_megapix &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;seam_megapix&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compose_megapix &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;compose_megapix&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; conf_thresh &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;conf_thresh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ba_refine_mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ba_refine_mask&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wave_correct &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; WAVE_CORRECT_CHOICES[args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;wave_correct]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;save_graph &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; save_graph &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; save_graph &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warp_type &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blend_type &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;blend&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blend_strength &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;blend_strength&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result_name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;timelapse &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapse &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;timelapse &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;as_is&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapse_type &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Timelapser_AS_IS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;timelapse &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;crop&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapse_type &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Timelapser_CROP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Bad timelapse method&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapse &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; finder &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; FEATURES_FIND_CHOICES[args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;features]()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_work_aspect &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img_sizes &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; features &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_work_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_seam_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_compose_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; name &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; img_names:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imread(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;samples&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;findFile(name))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; full_img &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Cannot read image &amp;#34;&lt;/span&gt;, name)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img_sizes&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append((full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;], full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; work_megapix &lt;span style="color:#ff79c6"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; full_img&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; work_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_work_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; is_work_scale_set &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; work_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;min&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;1.0&lt;/span&gt;, np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sqrt(work_megapix &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1e6&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; (full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;])))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_work_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resize(src&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;full_img, dsize&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;, fx&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;work_scale, fy&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;work_scale, interpolation&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR_EXACT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; is_seam_scale_set &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;min&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;1.0&lt;/span&gt;, np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sqrt(seam_megapix &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1e6&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; (full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;])))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_work_aspect &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; seam_scale &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; work_scale&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_seam_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_feat &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;computeImageFeatures2(finder, img)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; features&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(img_feat)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resize(src&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;full_img, dsize&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;, fx&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;seam_scale, fy&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;seam_scale, interpolation&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR_EXACT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(img)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; matcher &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; get_matcher(args)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; matcher&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;apply2(features)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; matcher&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;collectGarbage()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; save_graph:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;with&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;open&lt;/span&gt;(args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;save_graph, &lt;span style="color:#f1fa8c"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; fh:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fh&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;write(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;matchesGraphAsString(img_names, p, conf_thresh))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; indices &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;leaveBiggestComponent(features, p, conf_thresh)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_subset &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_names_subset &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img_sizes_subset &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(indices)):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_names_subset&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(img_names[indices[i, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_subset&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(images[indices[i, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img_sizes_subset&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(full_img_sizes[indices[i, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; img_subset&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img_names &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; img_names_subset&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img_sizes &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; full_img_sizes_subset&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; num_images &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(img_names)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; num_images &lt;span style="color:#ff79c6"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Need more images&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; estimator &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; ESTIMATOR_CHOICES[args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;estimator]()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b, cameras &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; estimator&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;apply(features, p, &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; b:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Homography estimation failed.&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; cam &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; cameras:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cam&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cam&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; adjuster &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; BA_COST_CHOICES[args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ba]()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; adjuster&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;setConfThresh(&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; refine_mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;zeros((&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;), np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;uint8)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ba_refine_mask[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; refine_mask[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ba_refine_mask[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; refine_mask[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ba_refine_mask[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; refine_mask[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ba_refine_mask[&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; refine_mask[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; ba_refine_mask[&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; refine_mask[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; adjuster&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;setRefinementMask(refine_mask)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b, cameras &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; adjuster&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;apply(features, p, cameras)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; b:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Camera parameters adjusting failed.&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; focals &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; cam &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; cameras:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; focals&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(cam&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;focal)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; focals&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sort()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(focals) &lt;span style="color:#ff79c6"&gt;%&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warped_image_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; focals[&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(focals) &lt;span style="color:#ff79c6"&gt;//&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warped_image_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (focals[&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(focals) &lt;span style="color:#ff79c6"&gt;//&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; focals[&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(focals) &lt;span style="color:#ff79c6"&gt;//&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]) &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; wave_correct &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rmats &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; cam &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; cameras:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rmats&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;copy(cam&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rmats &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;waveCorrect(rmats, wave_correct)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; idx, cam &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;enumerate&lt;/span&gt;(cameras):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cam&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; rmats[idx]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; corners &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; masks_warped &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images_warped &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sizes &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; masks &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, num_images):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; um &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;UMat(&lt;span style="color:#bd93f9"&gt;255&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ones((images[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;], images[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]), np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;uint8))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; masks&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(um)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warper &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;PyRotationWarper(warp_type, warped_image_scale &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; seam_work_aspect) &lt;span style="color:#6272a4"&gt;# warper could be nullptr?&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; idx &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, num_images):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cameras[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;K()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; swa &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; seam_work_aspect&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; swa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; swa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; swa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; swa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; corner, image_wp &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; warper&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warp(images[idx], K, cameras[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BORDER_REFLECT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; corners&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(corner)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sizes&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append((image_wp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;], image_wp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images_warped&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(image_wp)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p, mask_wp &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; warper&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warp(masks[idx], K, cameras[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_NEAREST, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BORDER_CONSTANT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; masks_warped&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(mask_wp&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;get())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images_warped_f &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; img &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; images_warped:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; imgf &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; images_warped_f&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(imgf)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compensator &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; get_compensator(args)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compensator&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;feed(corners&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;corners, images&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;images_warped, masks&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;masks_warped)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_finder &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; SEAM_FIND_CHOICES[args&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;seam]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_finder&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;find(images_warped_f, corners, masks_warped)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compose_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; corners &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sizes &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapser &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# https://github.com/opencv/opencv/blob/master/samples/cpp/stitching_detailed.cpp#L725 ?&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; idx, name &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;enumerate&lt;/span&gt;(img_names):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; full_img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imread(name)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; is_compose_scale_set:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; compose_megapix &lt;span style="color:#ff79c6"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compose_scale &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;min&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;1.0&lt;/span&gt;, np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sqrt(compose_megapix &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1e6&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; (full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; full_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;])))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is_compose_scale_set &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compose_work_aspect &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; compose_scale &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; work_scale&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warped_image_scale &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; compose_work_aspect&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warper &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;PyRotationWarper(warp_type, warped_image_scale)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; i &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(img_names)):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cameras[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;focal &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; compose_work_aspect&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cameras[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ppx &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; compose_work_aspect&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cameras[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ppy &lt;span style="color:#ff79c6"&gt;*=&lt;/span&gt; compose_work_aspect&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sz &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (full_img_sizes[i][&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; compose_scale, full_img_sizes[i][&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; compose_scale)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cameras[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;K()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; roi &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; warper&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warpRoi(sz, K, cameras[i]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; corners&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(roi[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sizes&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(roi[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;:&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;abs&lt;/span&gt;(compose_scale &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1e-1&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resize(src&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;full_img, dsize&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;, fx&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;compose_scale, fy&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;compose_scale,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; interpolation&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR_EXACT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; full_img&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; _img_size &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;], img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; K &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cameras[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;K()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; corner, image_warped &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; warper&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warp(img, K, cameras[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BORDER_REFLECT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;255&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ones((img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;], img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]), np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;uint8)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p, mask_warped &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; warper&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warp(mask, K, cameras[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;R, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_NEAREST, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BORDER_CONSTANT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; compensator&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;apply(idx, corners[idx], image_warped, mask_warped)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; image_warped_s &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; image_warped&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;int16)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dilated_mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;dilate(masks_warped[idx], &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seam_mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resize(dilated_mask, (mask_warped&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;], mask_warped&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]), &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;, cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR_EXACT)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mask_warped &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;bitwise_and(seam_mask, mask_warped)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; blender &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;and&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; timelapse:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Blender_createDefault(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Blender_NO)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dst_sz &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resultRoi(corners&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;corners, sizes&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;sizes)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blend_width &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sqrt(dst_sz[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; dst_sz[&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;]) &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; blend_strength &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;100&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; blend_width &lt;span style="color:#ff79c6"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Blender_createDefault(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Blender_NO)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; blend_type &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;multiband&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_MultiBandBlender()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;setNumBands((np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;log(blend_width) &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;log(&lt;span style="color:#bd93f9"&gt;2.&lt;/span&gt;) &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1.&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;astype(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;int))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; blend_type &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;feather&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail_FeatherBlender()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;setSharpness(&lt;span style="color:#bd93f9"&gt;1.&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; blend_width)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;prepare(dst_sz)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;elif&lt;/span&gt; timelapser &lt;span style="color:#ff79c6"&gt;is&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;and&lt;/span&gt; timelapse:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapser &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detail&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Timelapser_createDefault(timelapse_type)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;initialize(corners, sizes)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; timelapse:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ma_tones &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;ones((image_warped_s&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;], image_warped_s&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]), np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;uint8)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; timelapser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;process(image_warped_s, ma_tones, corners[idx])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pos_s &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; img_names[idx]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rfind(&lt;span style="color:#f1fa8c"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; pos_s &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fixed_file_name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;fixed_&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; img_names[idx]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fixed_file_name &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; img_names[idx][:pos_s &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;] &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;fixed_&amp;#34;&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; img_names[idx][pos_s &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;:]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imwrite(fixed_file_name, timelapser&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;getDst())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; blender&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;feed(cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;UMat(image_warped_s), mask_warped, corners[idx])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;not&lt;/span&gt; timelapse:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result_mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result, result_mask &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; blender&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;blend(result, result_mask)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imwrite(result_name, result)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; zoom_x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;600.0&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; result&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dst &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;normalize(src&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;result, dst&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;, alpha&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;255.&lt;/span&gt;, norm_type&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;NORM_MINMAX, dtype&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;CV_8U)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dst &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resize(dst, dsize&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;, fx&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;zoom_x, fy&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;zoom_x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imshow(result_name, dst)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;waitKey()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;Done&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;__name__&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#8be9fd;font-style:italic"&gt;__doc__&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; main()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;destroyAllWindows()&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>