{"id":440,"date":"2011-06-02T15:30:10","date_gmt":"2011-06-02T13:30:10","guid":{"rendered":"http:\/\/mclightning.com\/?p=440"},"modified":"2011-06-02T15:30:10","modified_gmt":"2011-06-02T13:30:10","slug":"opensourceopencv-irrlicht-integration-head-tracking","status":"publish","type":"post","link":"https:\/\/maximusabrams.com\/?p=440","title":{"rendered":"OpenSource:OpenCV &amp; Irrlicht Integration &amp; Head-Tracking"},"content":{"rendered":"<p><a href=\"#eng\">English<\/a> <a href=\"#tr\"> T\u00fcrk\u00e7e<\/a> <a href=\"#dwn\">Download<\/a><\/p>\n<p><object width=\"560\" height=\"349\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/jmOnj4YeV-I?version=3&amp;hl=en_US\" \/><param name=\"allowFullScreen\" value=\"true\" \/><param name=\"allowscriptaccess\" value=\"always\" \/><\/object><\/p>\n<div id=\"eng\">\n<h4>English<\/h4>\n<p>About a month ago, I completed the integration of OpenCV with Irrlicht, aiming to develop some augmented reality (AR) projects using this combination. However, I&#8217;ve been quite busy with other work, and as time passed, I lost the momentum to continue. Instead of letting the code gather dust in my archive, I&#8217;ve decided to share it as open-source here. Hopefully, it will be useful to others who are working on similar projects.<\/p>\n<p>Feel free to ask any questions, and please let me know if you come up with something exciting using this code. I\u2019d love to see what others can create!<\/p>\n<p>To run the project as demonstrated in the video, you&#8217;ll need an infrared camera to detect IR blobs. I recommend checking out my tutorial on how to modify your webcam into an infrared camera in just seven simple steps.<\/p>\n<h4>Documentation on the <code>irFinder<\/code> Class:<\/h4>\n<div class=\"dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-cpp\">irFinder::<span class=\"hljs-built_in\">irFinder<\/span>(<span class=\"hljs-type\">const<\/span> <span class=\"hljs-type\">char<\/span>* windowTitle, <span class=\"hljs-type\">bool<\/span> showWindow, <span class=\"hljs-type\">int<\/span> threshold, <span class=\"hljs-type\">int<\/span> maxValue)<br \/>\n<\/code><\/div>\n<\/div>\n<ul>\n<li><code>windowTitle<\/code>: Title for the OpenCV window<\/li>\n<li><code>showWindow<\/code>: Boolean to display the OpenCV window<\/li>\n<li><code>threshold<\/code>: Threshold value for the <code>cvThreshold<\/code> function<\/li>\n<li><code>maxValue<\/code>: Maximum value for the <code>cvThreshold<\/code> function<\/li>\n<\/ul>\n<div class=\"dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium\">\n<div class=\"flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md\"><\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-cpp\"><span class=\"hljs-function\">CvPoint <span class=\"hljs-title\">irFinder::update<\/span><span class=\"hljs-params\">()<\/span><br \/>\n<\/span><\/code><\/div>\n<\/div>\n<ul>\n<li>A function that updates and returns the blob position as a <code>CvPoint<\/code>.<\/li>\n<\/ul>\n<p>I believe the rest of the code is self-explanatory&#8230;<\/p>\n<hr \/>\n<h4>T\u00fcrk\u00e7e<\/h4>\n<p>Asl\u0131nda bu entegrasyon i\u00e7in gerekli olan temel \u00e7al\u0131\u015fmay\u0131 yapal\u0131 yakla\u015f\u0131k 1 ay oldu. Bu iki k\u00fct\u00fcphanenin kombinasyonuyla birka\u00e7 sanal ger\u00e7eklik (AR) projesi ortaya \u00e7\u0131karmay\u0131 planl\u0131yordum. Ancak yo\u011fun \u00e7al\u0131\u015fmalar ve final haftas\u0131 nedeniyle bu projeye devam etme f\u0131rsat\u0131 bulamad\u0131m ve ge\u00e7en s\u00fcre zarf\u0131nda bu \u00e7al\u0131\u015fma \u00fczerine hevesimi kaybettim. Bu y\u00fczden \u00e7al\u0131\u015fman\u0131n tamam\u0131n\u0131 a\u00e7\u0131k kaynak olarak payla\u015fmay\u0131 uygun g\u00f6rd\u00fcm. Umar\u0131m bu konuda \u00e7al\u0131\u015fma yapanlara yard\u0131mc\u0131 olur.<\/p>\n<p>Akl\u0131n\u0131za tak\u0131lan bir \u015fey olursa sormaktan \u00e7ekinmeyin, ortaya bir \u015feyler \u00e7\u0131kt\u0131\u011f\u0131n\u0131 g\u00f6rmek beni mutlu eder. Payla\u015f\u0131rsan\u0131z sevinirim \ud83d\ude42<\/p>\n<p>Projeyi videoda g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi \u00e7al\u0131\u015ft\u0131rmak i\u00e7in k\u0131z\u0131l\u00f6tesi kameraya ihtiya\u00e7 duyulmaktad\u0131r. Web kameran\u0131za 7 basit ad\u0131mda k\u0131z\u0131l\u00f6tesi \u00f6zelli\u011fi eklemek i\u00e7in daha \u00f6nceden yazm\u0131\u015f oldu\u011fum yaz\u0131y\u0131 incelemenizi tavsiye ederim.<\/p>\n<h4><code>irFinder<\/code> S\u0131n\u0131f\u0131 D\u00f6k\u00fcmantasyonu:<\/h4>\n<div class=\"dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-cpp\">irFinder::<span class=\"hljs-built_in\">irFinder<\/span>(<span class=\"hljs-type\">const<\/span> <span class=\"hljs-type\">char<\/span>* pencere, <span class=\"hljs-type\">bool<\/span> gosterPencere, <span class=\"hljs-type\">int<\/span> tre, <span class=\"hljs-type\">int<\/span> max)<br \/>\n<\/code><\/div>\n<\/div>\n<ul>\n<li><code>pencere<\/code>: OpenCV pencere ba\u015fl\u0131\u011f\u0131<\/li>\n<li><code>gosterPencere<\/code>: OpenCV penceresini g\u00f6sterme de\u011fi\u015fkeni<\/li>\n<li><code>tre<\/code>: <code>cvThreshold<\/code> fonksiyonu i\u00e7in e\u015fik de\u011feri<\/li>\n<li><code>max<\/code>: <code>cvThreshold<\/code> fonksiyonu maksimum de\u011feri<\/li>\n<\/ul>\n<div class=\"dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium\">\n<div class=\"flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md\"><\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre hljs language-cpp\"><span class=\"hljs-function\">CvPoint <span class=\"hljs-title\">irFinder::yenile<\/span><span class=\"hljs-params\">()<\/span><br \/>\n<\/span><\/code><\/div>\n<\/div>\n<ul>\n<li>Tespit edilen kaynak konumunu g\u00fcncelleyip <code>CvPoint<\/code> olarak d\u00f6nen fonksiyon.<\/li>\n<\/ul>\n<p>San\u0131r\u0131m kodun geri kalan\u0131 zaten kendisini a\u00e7\u0131kl\u0131yor&#8230;<\/p>\n<\/div>\n<div id=\"tr\">\n<h2 id=\"dwn\"><a href=\"http:\/\/charrecogcv.googlecode.com\/files\/irrCV.rar\">Download<\/a><\/h2>\n<p>(vs2010 Project included)<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>English T\u00fcrk\u00e7e Download English About a month ago, I completed the integration of OpenCV with Irrlicht, aiming to develop some augmented reality (AR) projects using this combination. However, I&#8217;ve been quite busy with other work, and as time passed, I lost the momentum to continue. Instead of letting the code gather dust in my archive, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,3],"tags":[46,57,74,89,94,143,153,221,328],"class_list":["post-440","post","type-post","status-publish","format-standard","hentry","category-diy","category-electronics-2","tag-blob","tag-camera","tag-computer","tag-detection","tag-diy","tag-infrared","tag-irrlicht","tag-opencv-2","tag-vision"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/maximusabrams.com\/index.php?rest_route=\/wp\/v2\/posts\/440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maximusabrams.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maximusabrams.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maximusabrams.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maximusabrams.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=440"}],"version-history":[{"count":0,"href":"https:\/\/maximusabrams.com\/index.php?rest_route=\/wp\/v2\/posts\/440\/revisions"}],"wp:attachment":[{"href":"https:\/\/maximusabrams.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maximusabrams.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maximusabrams.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}