{"id":1553,"date":"2026-09-23T13:55:08","date_gmt":"2026-09-23T13:55:08","guid":{"rendered":"https:\/\/cv.inf.elte.hu\/?p=1553"},"modified":"2026-09-23T13:57:25","modified_gmt":"2026-09-23T13:57:25","slug":"new-open-source-release-affineextractor-toolbox","status":"publish","type":"post","link":"https:\/\/cv.inf.elte.hu\/index.php\/2026\/09\/23\/new-open-source-release-affineextractor-toolbox\/","title":{"rendered":"New Open-Source Release: AffineExtractor Toolbox"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">We are pleased to announce the public release of <strong><a href=\"https:\/\/github.com\/LeventeHajder\/AffineExtractor\">AffineExtractor<\/a><\/strong>, a new Python-based computer vision toolbox developed by our research group. The repository is now available on GitHub for the research and developer community.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"750\" src=\"https:\/\/cv.inf.elte.hu\/wp-content\/uploads\/2026\/09\/visLK2.png\" alt=\"\" class=\"wp-image-1557\" srcset=\"https:\/\/cv.inf.elte.hu\/wp-content\/uploads\/2026\/09\/visLK2.png 1000w, https:\/\/cv.inf.elte.hu\/wp-content\/uploads\/2026\/09\/visLK2-300x225.png 300w, https:\/\/cv.inf.elte.hu\/wp-content\/uploads\/2026\/09\/visLK2-768x576.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why AffineExtractor?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In standard computer vision pipelines, feature matching (such as SIFT) is often used solely to obtain <em>(x, y)<\/em> point correspondences for global transformation estimation (e.g., Homography via RANSAC). However, this approach discards valuable geometric information. AffineExtractor leverages the scale and orientation properties of local descriptors to compute the full <strong>local affine frame<\/strong> (a <em>2&#215;3<\/em> transformation matrix) for each individual match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Key Features of the Toolbox:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OpenCV SIFT Affine Matcher:<\/strong> Computes initial local affine transformations directly from OpenCV&#8217;s <code>cv2.SIFT<\/code> keypoint properties (<code>size<\/code> and <code>angle<\/code>) immediately after matching.<\/li>\n\n\n\n<li><strong>Advanced Refinement Algorithms:<\/strong> Includes gradient-based (Lucas-Kanade) and search-based (Brute-Force) refinement scripts to further optimize the extracted initial affine frames.<\/li>\n\n\n\n<li><strong>Ready-to-use Demo:<\/strong> Comes with demo scripts and a sample dataset (e.g., the Infopark fountain image pair) for immediate testing.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">We invite researchers and developers working in 3D reconstruction, surface normal estimation, and multi-view geometry to try out the tools, use them in their pipelines, and contribute to the repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 <strong>Access the code and documentation on GitHub:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/LeventeHajder\/AffineExtractor\">https:\/\/github.com\/LeventeHajder\/AffineExtractor<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>For questions or collaborations, feel free to contact <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/www.google.com\/search?q=mailto%3Ahajder%40inf.elte.hu\">Levente Hajder<\/a> or visit our <a target=\"_blank\" rel=\"noopener\" href=\"http:\/\/cv.inf.elte.hu?utm_source=gemini\">Computer Vision Lab website<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are pleased to announce the public release of AffineExtractor, a new Python-based computer vision toolbox developed by our research group. The repository is now available on GitHub for the research and developer community. Why AffineExtractor? In standard computer vision pipelines, feature matching (such as SIFT) is often used solely to obtain (x, y) point [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"post_folder":[],"class_list":["post-1553","post","type-post","status-publish","format-standard","hentry","category-egyeb"],"_links":{"self":[{"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/posts\/1553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/comments?post=1553"}],"version-history":[{"count":4,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/posts\/1553\/revisions"}],"predecessor-version":[{"id":1558,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/posts\/1553\/revisions\/1558"}],"wp:attachment":[{"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/media?parent=1553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/categories?post=1553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/tags?post=1553"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/cv.inf.elte.hu\/index.php\/wp-json\/wp\/v2\/post_folder?post=1553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}