{"id":9207,"date":"2011-09-03T19:31:00","date_gmt":"2011-09-03T17:31:00","guid":{"rendered":"https:\/\/fatihboy.com\/post\/kinect-sdk-havuz-vs-olay"},"modified":"2011-09-03T19:31:00","modified_gmt":"2011-09-03T17:31:00","slug":"kinect-sdk-havuz-vs-olay","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/kinect-sdk-havuz-vs-olay\/","title":{"rendered":"Kinect SDK : Havuz vs Olay"},"content":{"rendered":"<p>&nbsp;&nbsp; Windows i\u00e7in Kinect SDK Beta s\u00fcr\u00fcm\u00fcyle birlikte gelen programlama k\u0131lavuzunu okuduysan\u0131z derinlik, video ve iskelet ak\u0131\u015flar\u0131ndan bilgi almak i\u00e7in iki y\u00f6ntem \u00f6nerildi\u011fini biliyor olmal\u0131s\u0131n\u0131z; Havuz ve Olay. Bu makalemde, bu iki y\u00f6ntem aras\u0131ndaki farklara de\u011finerek daha \u00f6nceden Olay bildirimleri y\u00f6ntemi \u00fczerinden \u00f6rnekledi\u011fim <a href=\"\/en\/?p=9155\">To the Space with Kinect<\/a> makalemdeki kodumu havuz y\u00f6ntemiyle nas\u0131l yazabilece\u011fimizi sizlerle payla\u015f\u0131yor olaca\u011f\u0131m.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Do\u011frudan kodlamaya ba\u015flamadan \u00f6nce isterseniz her iki y\u00f6ntemi tan\u0131yal\u0131m:<\/p>\n\n\n\n<p><strong>Olay (event) Y\u00f6ntemi<\/strong>&nbsp;&nbsp; : Kinect taraf\u0131ndan derinlik, video ve iskelet verisi olu\u015ftu\u011funda bir olay ile bildirilmesi temeline dayanan bu y\u00f6ntem bize daha esnek olarak uygulama geli\u015ftirme imkan\u0131 sunmaktad\u0131r. Kullan\u0131ma haz\u0131r bir veri olu\u015fmas\u0131 durumunda \u00e7al\u0131\u015fma-zaman\u0131 <strong>Runtime.DepthFrameReady<\/strong> ve\/veya <strong>Runtime.ImageFrameReady<\/strong> olaylar\u0131 tetiklenecektir. Uygulama i\u00e7erisinde ihtiyac\u0131m\u0131z olan veriye g\u00f6re bu iki olay bildiriminden ihtiyac\u0131m\u0131z olan\u0131 dinlememiz yeterli olacakt\u0131r.<\/p>\n\n\n\n<p><strong>Havuz (pooling) y\u00f6ntemi<\/strong> : Derinlik, video ve iskelet ak\u0131\u015flar\u0131n\u0131 i\u015flemede en basit y\u00f6ntem olan havuz y\u00f6nteminde verinin olu\u015fmas\u0131 s\u0131ras\u0131nda SDK\u2019dan bir olay bildirimi beklemek yerine, belirli aral\u0131klarla verinin olu\u015fup olu\u015fmad\u0131\u011f\u0131 kontrol edilmekte. Olu\u015fan veri programsal olarak <strong>DepthStream.GetNextFrame<\/strong> ve <strong>VideoStream.GetNextFrame<\/strong> fonksiyonlar\u0131 yard\u0131m\u0131yla teslim al\u0131n\u0131p i\u015fleninceye kadar bir havuzda bekleyecektir. Donan\u0131msal k\u0131s\u0131tlar nedeniyle olu\u015fan bir verinin sonsuza kadar havuzda haz\u0131r tutulamayacak olmas\u0131 nedeniyle, ilgili veri ak\u0131\u015f\u0131 ba\u015flat\u0131l\u0131rken havuzun boyutu (<em>havuzda ayn\u0131 anda tutulacak veri say\u0131s\u0131<\/em>) belirlenmekte ve bu say\u0131 a\u015f\u0131ld\u0131\u011f\u0131nda eski veriler havuzdan silinmektedir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Yukar\u0131da \u00f6zetle ne olduklar\u0131n\u0131 payla\u015ft\u0131\u011f\u0131m her iki y\u00f6ntemin de kendilerine g\u00f6re art\u0131lar\u0131 ve eksileri mevcut. Olay bildirimi \u00fczerinden hareket etmek her zaman i\u00e7in biz managed kod geli\u015ftiren yaz\u0131l\u0131mc\u0131lar i\u00e7in daha cazip olacakt\u0131r. Hali haz\u0131rda geli\u015ftirdi\u011fimiz pek \u00e7ok uygulamada zaten kullan\u0131yor oldu\u011fumuz bu y\u00f6ntem bize daha esnek hareket etme \u015fans\u0131 sunacakt\u0131r. \u00d6te yandan havuz y\u00f6nteminde, durmaks\u0131z\u0131n beslenen ve i\u015flemci zaman\u0131n\u0131 kullanan bir veri ak\u0131\u015f\u0131 ve olay bildirimleri yerine, haz\u0131rda bekleyen veriyi ihtiyac\u0131m\u0131z oldu\u011funda okuyarak i\u015flem yapma imkan\u0131 sunacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp; \u0130ki y\u00f6ntemden hangisi se\u00e7ece\u011fimiz konusunda belirleyici olan bir ba\u015fka nokta da yapmak istedi\u011fimiz i\u015flem olacakt\u0131r. <a href=\"\/en\/?p=9155\">To the Space with Kinect<\/a> ba\u015fl\u0131kl\u0131 makalemi hat\u0131rlayacak olursan\u0131z video ve derinlik ak\u0131\u015flar\u0131n\u0131 bir arada kullanm\u0131\u015ft\u0131k. Teorik olarak problemsiz \u00e7al\u0131\u015facak olan bu kod d\u00fc\u015f\u00fck i\u015flemci kapasitesine sahip ya da ayn\u0131 anda yo\u011fun i\u015flemci zaman\u0131 kullan\u0131m\u0131 olan durumlarda senkronizasyon problemi yaratacakt\u0131r. \u00d6zellikle h\u0131zl\u0131 hareket etti\u011fimizde bu problem daha bariz \u015fekilde g\u00f6r\u00fclecektir. Bu problemin ortaya \u00e7\u0131k\u0131\u015f nedenlerinden birisi de Kinect\u2019in hareket ve video sens\u00f6r\u00fcn\u00fcn ayn\u0131 saat frekans\u0131nda \u00e7al\u0131\u015fm\u0131yor olmas\u0131d\u0131r. Alternatif olarak \u00c7er\u00e7eve numaras\u0131 (<em>FrameNumber<\/em>) de\u011ferinin kullan\u0131m\u0131 ak\u0131llara gelse de hen\u00fcz beta seviyesindeki Windows i\u00e7in Kinect SDK\u2019de ayn\u0131 \u00e7er\u00e7eve numaras\u0131na sahip iki ak\u0131\u015f\u0131n senkron olaca\u011f\u0131n\u0131n bir garantisi bulunmamakta. Bu durumda olay bildirimi \u00fczerinden bu tarz uygulama geli\u015ftirmeyi zorla\u015ft\u0131rmakta ve havuz y\u00f6ntemi alternatifini ak\u0131llara getirmekte.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Yukar\u0131da bahsetti\u011fim senaryoda, olay bildirimleri yerine havuz \u00fczerinden i\u015flemleri ger\u00e7ekle\u015ftirmek daha senkron bir olu\u015fturma konusunda bizlere daha fazla kontrol sa\u011flamas\u0131 d\u0131\u015f\u0131nda ortaya \u00e7\u0131kan kod da daha anla\u015f\u0131l\u0131r olacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Aradaki fark\u0131n daha rahat anla\u015f\u0131lmas\u0131 ve havuz y\u00f6ntemi ile nas\u0131l kod geli\u015ftirilece\u011finin peki\u015fmesi ad\u0131na, a\u015fa\u011f\u0131da <a href=\"\/en\/?p=9155\">To the Space with Kinect<\/a> ba\u015fl\u0131kl\u0131 makalemde payla\u015ft\u0131\u011f\u0131m uygulamay\u0131 havuz y\u00f6ntemi ile ba\u015ftan geli\u015ftirilmi\u015f haliyle payla\u015f\u0131yorum;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using System;\nusing System.Collections.Generic;\nusing System.Windows;\nusing System.Windows.Media;\nusing System.Windows.Media.Imaging;\nusing System.Windows.Threading;\nusing Microsoft.Research.Kinect.Nui;\n\nnamespace Com.Enterprisecoding.MerhabaKinect {\n    public partial class MainWindow : Window {\n        private Runtime kinect;\n\n        private Queue&lt;ImageFrame> VideoKuyrugu = new Queue&lt;ImageFrame>();\n        private DispatcherTimer zamanlayici = new DispatcherTimer();\n\n        public MainWindow() {\n            InitializeComponent();\n\n            kinect = new Runtime();\n        }\n\n        private void Window_Loaded(object sender, RoutedEventArgs e) {\n            kinect.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor);\n\n            kinect.VideoStream.Open(ImageStreamType.Video, 2, ImageResolution.Resolution640x480, ImageType.Color);\n            kinect.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240, ImageType.DepthAndPlayerIndex);\n\n            zamanlayici.Interval = new TimeSpan(0, 0, 0, 0, 20);\n            zamanlayici.Tick += zamanlayici_Tick;\n            zamanlayici.Start();\n\n            var derinlikBilgisi = kinect.DepthStream.GetNextFrame(0);\n            var videoBilgisi = kinect.VideoStream.GetNextFrame(0);\n        }\n\n        private void zamanlayici_Tick(object sender, EventArgs e) {\n            var derinlikBilgisi = kinect.DepthStream.GetNextFrame(0);\n            var videoBilgisi = kinect.VideoStream.GetNextFrame(0);\n\n            if (videoBilgisi != null) {\n                VideoKuyrugu.Enqueue(videoBilgisi);\n            }\n\n            if (derinlikBilgisi != null) {\n                var enUygunVideoBilgisi = EnUygunVideoBilgisiniBul(derinlikBilgisi.Timestamp);\n\n                if (enUygunVideoBilgisi != null) {\n                    GoruntuyuIsle(derinlikBilgisi, enUygunVideoBilgisi);\n                }\n            }\n        }\n\n        private void GoruntuyuIsle(ImageFrame derinlikBilgisi, ImageFrame videoBilgisi) {\n            var genislik = derinlikBilgisi.Image.Width;\n            var yukseklik = derinlikBilgisi.Image.Height;\n\n            var derinlikBitleri = derinlikBilgisi.Image.Bits;\n            var videoBitleri = videoBilgisi.Image.Bits;\n\n            var islenmisGoruntu = new byte[genislik * yukseklik &amp;lt;&amp;lt; 2];\n\n            for (int y = 0, veriIndeksi = 0; y &lt; yukseklik; y++) {\n                var yukseklikOfseti = y * genislik;\n\n                for (var x = 0; x &amp;lt; genislik; x++, veriIndeksi += 2) {\n                    var oyuncu = derinlikBitleri[veriIndeksi] &amp;amp; 0x07;\n\n                    if (oyuncu &amp;gt; 0) {\n                        var pikselIndeksi = ((genislik - x - 1) + yukseklikOfseti) * 4;\n\n                        int xKordinati;\n                        int yKordinati;\n\n                        kinect.NuiCamera.GetColorPixelCoordinatesFromDepthPixel(videoBilgisi.Resolution,\n                            videoBilgisi.ViewArea, x, y,\n                            (short)(derinlikBitleri[veriIndeksi] | (derinlikBitleri[veriIndeksi + 1]&lt;&lt; 8)),\n                            out xKordinati,\n                            out yKordinati);\n\n                        var videoPikselIndeksi = (xKordinati + (yKordinati * videoBilgisi.Image.Width)) &lt;&lt; 2;\n\n                        islenmisGoruntu[pikselIndeksi] = videoBitleri[videoPikselIndeksi];\n                        islenmisGoruntu[pikselIndeksi + 1] = videoBitleri[videoPikselIndeksi + 1];\n                        islenmisGoruntu[pikselIndeksi + 2] = videoBitleri[videoPikselIndeksi + 2];\n                        islenmisGoruntu[pikselIndeksi + 3] = (byte)255;\n                    }\n                }\n            }\n\n            islenmisVideo.Source = BitmapSource.Create(genislik, yukseklik, 96, 96, PixelFormats.Bgra32, null, islenmisGoruntu, (genislik * PixelFormats.Bgra32.BitsPerPixel) >> 3);\n        }\n\n        private ImageFrame EnUygunVideoBilgisiniBul(long timestamp) {\n            if (VideoKuyrugu.Count == 0) { return null; }\n\n            var enUygunVideoBilgisi = VideoKuyrugu.Dequeue();\n\n            var enUygunZamanFarki = Math.Abs(enUygunVideoBilgisi.Timestamp - timestamp);\n\n            if (VideoKuyrugu.Count > 0) {\n                var videoBilgisi = VideoKuyrugu.Peek();\n                var zamanFarki = Math.Abs(videoBilgisi.Timestamp - timestamp);\n\n                if (zamanFarki &amp;lt; enUygunZamanFarki) {\n                    enUygunVideoBilgisi = VideoKuyrugu.Dequeue();\n                }\n            }\n\n            return enUygunVideoBilgisi;\n        }\n\n        private void Window_Closed(object sender, System.EventArgs e) {\n            kinect.Uninitialize();\n        }\n    }\n}<\/pre>\n\n\n\n<p>Her iki kodu ayr\u0131 ayr\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda havuz y\u00f6ntemiyle daha senkron bir g\u00f6r\u00fcnt\u00fc elde edildi\u011fini sizlerde g\u00f6rebilirsiniz. \u015e\u00fcphesiz ki ayn\u0131 y\u00f6ntem \u00fczerinden alternatif implemantasyonlarla daha performansl\u0131 kod yaz\u0131lmas\u0131 da s\u00f6z konusu olabilir.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; Windows i\u00e7in Kinect SDK Beta s\u00fcr\u00fcm\u00fcyle birlikte gelen programlama k\u0131lavuzunu okuduysan\u0131z derinlik, video ve iskelet ak\u0131\u015flar\u0131ndan bilgi almak i\u00e7in iki y\u00f6ntem \u00f6nerildi\u011fini biliyor olmal\u0131s\u0131n\u0131z; Havuz ve Olay. Bu makalemde, bu iki y\u00f6ntem aras\u0131ndaki farklara de\u011finerek daha \u00f6nceden Olay bildirimleri y\u00f6ntemi \u00fczerinden \u00f6rnekledi\u011fim Kinect ile Uzaya \u00c7\u0131k\u0131yoruz makalemdeki kodumu havuz y\u00f6ntemiyle nas\u0131l yazabilece\u011fimizi sizlerle payla\u015f\u0131yor&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/kinect-sdk-havuz-vs-olay\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":9209,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[27],"class_list":["post-9207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-turkce","tag-kinect"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kinect SDK : Havuz vs Olay - Fatih Boy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihboy.com\/en\/kinect-sdk-havuz-vs-olay\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kinect SDK : Havuz vs Olay - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp; Windows i\u00e7in Kinect SDK Beta s\u00fcr\u00fcm\u00fcyle birlikte gelen programlama k\u0131lavuzunu okuduysan\u0131z derinlik, video ve iskelet ak\u0131\u015flar\u0131ndan bilgi almak i\u00e7in iki y\u00f6ntem \u00f6nerildi\u011fini biliyor olmal\u0131s\u0131n\u0131z; Havuz ve Olay. Bu makalemde, bu iki y\u00f6ntem aras\u0131ndaki farklara de\u011finerek daha \u00f6nceden Olay bildirimleri y\u00f6ntemi \u00fczerinden \u00f6rnekledi\u011fim Kinect ile Uzaya \u00c7\u0131k\u0131yoruz makalemdeki kodumu havuz y\u00f6ntemiyle nas\u0131l yazabilece\u011fimizi sizlerle payla\u015f\u0131yor...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/kinect-sdk-havuz-vs-olay\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2011-09-03T17:31:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"209\" \/>\n\t<meta property=\"og:image:height\" content=\"208\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Kinect SDK : Havuz vs Olay\",\"datePublished\":\"2011-09-03T17:31:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/\"},\"wordCount\":720,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png\",\"keywords\":[\"Kinect\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/\",\"url\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/\",\"name\":\"Kinect SDK : Havuz vs Olay - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png\",\"datePublished\":\"2011-09-03T17:31:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png\",\"width\":209,\"height\":208},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kinect SDK : Havuz vs Olay\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kinect SDK : Havuz vs Olay - Fatih Boy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihboy.com\/en\/kinect-sdk-havuz-vs-olay\/","og_locale":"en_US","og_type":"article","og_title":"Kinect SDK : Havuz vs Olay - Fatih Boy","og_description":"&nbsp;&nbsp; Windows i\u00e7in Kinect SDK Beta s\u00fcr\u00fcm\u00fcyle birlikte gelen programlama k\u0131lavuzunu okuduysan\u0131z derinlik, video ve iskelet ak\u0131\u015flar\u0131ndan bilgi almak i\u00e7in iki y\u00f6ntem \u00f6nerildi\u011fini biliyor olmal\u0131s\u0131n\u0131z; Havuz ve Olay. Bu makalemde, bu iki y\u00f6ntem aras\u0131ndaki farklara de\u011finerek daha \u00f6nceden Olay bildirimleri y\u00f6ntemi \u00fczerinden \u00f6rnekledi\u011fim Kinect ile Uzaya \u00c7\u0131k\u0131yoruz makalemdeki kodumu havuz y\u00f6ntemiyle nas\u0131l yazabilece\u011fimizi sizlerle payla\u015f\u0131yor...Read More","og_url":"https:\/\/fatihboy.com\/en\/kinect-sdk-havuz-vs-olay\/","og_site_name":"Fatih Boy","article_published_time":"2011-09-03T17:31:00+00:00","og_image":[{"width":209,"height":208,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png","type":"image\/png"}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Kinect SDK : Havuz vs Olay","datePublished":"2011-09-03T17:31:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/"},"wordCount":720,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png","keywords":["Kinect"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/","url":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/","name":"Kinect SDK : Havuz vs Olay - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png","datePublished":"2011-09-03T17:31:00+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/09\/kinect_thumb.png","width":209,"height":208},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/kinect-sdk-havuz-vs-olay\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Kinect SDK : Havuz vs Olay"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/9207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=9207"}],"version-history":[{"count":0,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/9207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/9209"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=9207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=9207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=9207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}