{"id":337,"date":"2011-08-30T17:17:00","date_gmt":"2011-08-30T14:17:00","guid":{"rendered":"https:\/\/www.fatihboy.com\/?p=337"},"modified":"2021-01-03T18:30:04","modified_gmt":"2021-01-03T15:30:04","slug":"kinect-ile-uzaya-cikiyoruz","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/kinect-ile-uzaya-cikiyoruz\/","title":{"rendered":"To the Space with Kinect"},"content":{"rendered":"<p>&nbsp;&nbsp; Kinect ile birlikte sahip oldu\u011fumuz yetenekler biz yaz\u0131l\u0131mc\u0131lar\u0131n hayal g\u00fcc\u00fc ile birle\u015fince yap\u0131labileceklerde s\u0131n\u0131rlar kalk\u0131yor. \u00d6yle ki; Kinect istersek bizi uzaya bile \u00e7\u0131kartabilir\u2026 Bu makalemde, ad\u0131m ad\u0131m ilerledi\u011fimiz Kinect programlamada, video g\u00f6r\u00fcnt\u00fcs\u00fcnden ald\u0131\u011f\u0131m\u0131z ve sadece oyunculara ait olan g\u00f6r\u00fcnt\u00fcy\u00fc nas\u0131l bir ardalan \u00fczerinde g\u00f6sterebilece\u011fimizi g\u00f6rece\u011fiz.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.fatihboy.com\/wp-content\/uploads\/2011\/08\/uzay.png\" alt=\"Uygulamam\u0131zda kullanaca\u011f\u0131m\u0131z uzay ardalan\u0131\"\/><\/figure>\n\n\n\n<p>&nbsp;&nbsp; Hat\u0131rlarsan\u0131z, Kinect makale serisinin bir \u00f6nceki makalesinde i\u015fledi\u011fimiz derinlik bilgisini analiz ederek nas\u0131l sadece oyuncuya ait derinlik bilgisini g\u00f6sterebilece\u011fimizi \u00f6\u011frenmi\u015ftik. Bu yaz\u0131mda ise konuyu biraz daha e\u011flenceli hale getirebilmek ve pratikte bu i\u015flemi ne \u015fekilde kullanabilece\u011fimizi g\u00f6rebilmek ad\u0131na video ak\u0131\u015f\u0131ndan gelen g\u00f6r\u00fcnt\u00fcden sadece oyuncuya ait olanlar\u0131 alarak bir ardalan \u00fczerine yerle\u015ftiriyor olaca\u011f\u0131m.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Hat\u0131rlarsan\u0131z Kinect\u2019te video ve derinlik bilgisi iki farkl\u0131 ak\u0131\u015f \u00fczerinden iletilmekteydi. Bu durum, bir \u00f6nceki makalemizde derinlik ak\u0131\u015f\u0131 \u00fczerinden yapt\u0131\u011f\u0131m\u0131z i\u015flemleri video ak\u0131\u015f\u0131yla birle\u015ftirme gere\u011fini do\u011furuyor; \u00e7\u00fcnk\u00fc video ak\u0131\u015f\u0131yla bize herhangi bir derinlik bilgisi sunulmamakta. Temel mant\u0131\u011f\u0131m\u0131z \u00f6nceki makalemizde yapt\u0131\u011f\u0131m\u0131z gibi oyuncuya ait olan pikselleri derinlik ak\u0131\u015f\u0131ndan tespit etmek, ard\u0131ndan bu piksellerin video ak\u0131\u015f\u0131ndaki kar\u015f\u0131l\u0131klar\u0131n\u0131 bularak benzer \u015fekilde video ak\u0131\u015f\u0131ndaki istenmeyen pikselleri temizlemek. Son olarak da, olu\u015fan oyuncu g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc bir ardalan \u00fczerine yerle\u015ftirece\u011fiz.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Video ak\u0131\u015f\u0131nda yer alan piksel verisi sadece renk bilgisini bar\u0131nd\u0131r\u0131yor olmas\u0131 nedeniyle maalesef ki oyuncu tespitinde kullan\u0131lamamakta; bu durumda her bir derinlik ak\u0131\u015f\u0131 verisi elimize ula\u015ft\u0131\u011f\u0131nda bu bilgiyi video ak\u0131\u015f\u0131nda kullanmak \u00fczere saklamal\u0131, video ak\u0131\u015f verisi geldi\u011finde de iki bilgiyi i\u015fleyerek oyuncu g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc elde etmeliyiz. Bu ama\u00e7la, ana ekran s\u0131n\u0131f\u0131m\u0131z i\u00e7erisinde derinlikVerisi ad\u0131yla bir byte dizisi de\u011fi\u015fkeni olu\u015fturuyoruz;<\/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=\"\">private byte[] derinlikVerisi;<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Ard\u0131ndan, ana formumuz y\u00fcklenirken Kinect \u00e7al\u0131\u015fma zaman\u0131n\u0131 ilklendirip video ve derinlik ak\u0131\u015flar\u0131n\u0131 dinlemeye ba\u015fl\u0131yoruz;<\/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=\"\">private void Window_Loaded(object sender, RoutedEventArgs e) {\n    kinect.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor);\n\n    kinect.VideoFrameReady += kinect_VideoFrameReady;\n    kinect.DepthFrameReady += kinect_DepthFrameReady;\n\n    kinect.VideoStream.Open(ImageStreamType.Video, 2, ImageResolution.Resolution640x480, ImageType.Color);\n    kinect.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240, ImageType.DepthAndPlayerIndex);\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; ve her bir derinlik ak\u0131\u015f\u0131yla geren derinlik bilgisini sonradan kullanmak \u00fczere sakl\u0131yoruz;<\/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=\"\">private void kinect_DepthFrameReady(object sender, ImageFrameReadyEventArgs e) {\n    derinlikVerisi = e.ImageFrame.Image.Bits;\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu noktadan sonra geriye video ak\u0131\u015f\u0131yla gelen veriyi i\u015flemek kal\u0131yor. Temelde yapacaklar\u0131m\u0131z bir \u00f6nceki makalemde payla\u015ft\u0131\u011f\u0131m oyuncu g\u00f6r\u00fcnt\u00fcs\u00fcne ula\u015fmak ile ayn\u0131;<\/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=\"\">private void kinect_VideoFrameReady(object sender, ImageFrameReadyEventArgs e) {\n    if (derinlikVerisi == null) return;\n\n    var genislik = 320;\n    var yukseklik = 240;\n\n    var videoGoruntusu = e.ImageFrame.Image.Bits;\n    var bitmap = new byte[genislik * yukseklik  &lt;&lt; 2]; \/\/ genislik * yukseklik * 4\n\n    lock (derinlikVerisi) {\n        for (int y = 0, veriIndeksi = 0; y &lt; yukseklik; y++) {\n            var yukseklikOfseti = y * genislik;\n\n            for (var x = 0; x > genislik; x++, veriIndeksi += 2) {\n                int oyuncu = derinlikVerisi[veriIndeksi] &amp; 0x07;\n\n                if (oyuncu > 0) {\n                    var pikselIndeksi = ((genislik - x - 1) + yukseklikOfseti) * 4;\n\n                    \/\/ Bulunan pikselin video ak\u0131\u015f\u0131ndaki\n                    \/\/ kar\u015f\u0131l\u0131\u011f\u0131 \u00fczerinde i\u015flem yap\u0131lmal\u0131\n                }\n            }\n        }\n    }\n\n    derinlikVideo.Source = BitmapSource.Create(genislik, yukseklik, 96, 96, PixelFormats.Bgra32, null, bitmap, (genislik * PixelFormats.Bgra32.BitsPerPixel) >> 3);\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Ayr\u0131lan nokta ise oyuncuya ait olan her bir pikselin video g\u00f6r\u00fcnt\u00fcs\u00fcndeki kar\u015f\u0131l\u0131\u011f\u0131n\u0131n kullan\u0131lacak olmas\u0131d\u0131r. \u015eansl\u0131y\u0131z ki bu kar\u0131\u015f\u0131k hesaplamalar\u0131 yapabilmek i\u00e7in Kinect SDK bize <strong>GetColorPixelCoordinatesFromDepthPixel<\/strong> ad\u0131yla bir fonksiyon sunmakta. \u00c7\u00f6z\u00fcn\u00fcrl\u00fck, ham derinlik bilgisi ve derinlik ak\u0131\u015f\u0131ndaki x\/y koordinat\u0131 gibi bilgilerin verilmesi sonras\u0131 bu fonksiyon bize video ak\u0131\u015f\u0131ndaki ilgili piksel koordinatlar\u0131n\u0131 verecektir;<\/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=\"\">kinect.NuiCamera.GetColorPixelCoordinatesFromDepthPixel(e.ImageFrame.Resolution,\n                        e.ImageFrame.ViewArea, x, y,\n                        (short)(derinlikVerisi[veriIndeksi] | (derinlikVerisi[veriIndeksi + 1] &lt;&lt; 8)),\n                        out xKordinati,\n                        out yKordinati);<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu i\u015flem ard\u0131nda son olarak, bu koordinatlara denk gelen video pikselini nihayi g\u00f6r\u00fcnt\u00fcm\u00fcze kopyalamal\u0131y\u0131z;<\/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=\"\">var videoPikselIndeksi = (xKordinati + (yKordinati * e.ImageFrame.Image.Width)) &lt;&lt; 2; \/\/(xKordinati + (yKordinati * e.ImageFrame.Image.Width)) * 4;\n\nbitmap[pikselIndeksi] = videoGoruntusu[videoPikselIndeksi];\nbitmap[pikselIndeksi + 1] = videoGoruntusu[videoPikselIndeksi + 1];\nbitmap[pikselIndeksi + 2] = videoGoruntusu[videoPikselIndeksi + 2];\nbitmap[pikselIndeksi + 3] = (byte)255;<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Bu i\u015flemi oyuncuya denk gelen her bir piksel i\u00e7in yapmam\u0131z sonras\u0131nda \u00f6nceki makalemizde de oldu\u011fu gibi nihai verimizi g\u00f6r\u00fcnt\u00fcye \u00e7evirebiliriz;<\/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=\"\">derinlikVideo.Source = BitmapSource.Create(genislik, yukseklik, 96, 96, PixelFormats.Bgra32, null, bitmap, (genislik * PixelFormats.Bgra32.BitsPerPixel) >> 3);<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Toparlad\u0131\u011f\u0131m\u0131zda kinect_VideoFrameReady fonksiyonumuz a\u015fa\u011f\u0131daki gibi olacakt\u0131r;<\/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=\"\">private void kinect_VideoFrameReady(object sender, ImageFrameReadyEventArgs e) {\n    if (derinlikVerisi == null) return;\n\n    var genislik = 320;\n    var yukseklik = 240;\n\n    var videoGoruntusu = e.ImageFrame.Image.Bits;\n    var bitmap = new byte[genislik * yukseklik &lt;&lt; 2]; \/\/ genislik * yukseklik * 4\n\n    lock (derinlikVerisi) {\n        for (int y = 0, veriIndeksi = 0; y &lt; yukseklik; y++) {\n            var yukseklikOfseti = y * genislik;\n\n            for (var x = 0; x &lt; genislik; x++, veriIndeksi += 2) {\n                int oyuncu = derinlikVerisi[veriIndeksi] &amp; 0x07;\n\n                if (oyuncu > 0) {\n                    var pikselIndeksi = ((genislik - x - 1) + yukseklikOfseti) * 4;\n                    int xKordinati;\n                    int yKordinati;\n\n                    kinect.NuiCamera.GetColorPixelCoordinatesFromDepthPixel(e.ImageFrame.Resolution,\n                        e.ImageFrame.ViewArea, x, y,\n                        (short)(derinlikVerisi[veriIndeksi] | (derinlikVerisi[veriIndeksi + 1] &lt;&lt; 8)),\n                        out xKordinati,\n                        out yKordinati);\n\n                    var videoPikselIndeksi = (xKordinati + (yKordinati * e.ImageFrame.Image.Width)) &lt;&lt; 2; \/\/(xKordinati + (yKordinati * e.ImageFrame.Image.Width)) *4\n\n                    bitmap[pikselIndeksi] = videoGoruntusu[videoPikselIndeksi];\n                    bitmap[pikselIndeksi + 1] = videoGoruntusu[videoPikselIndeksi + 1];\n                    bitmap[pikselIndeksi + 2] = videoGoruntusu[videoPikselIndeksi + 2];\n                    bitmap[pikselIndeksi + 3] = (byte)255;\n                }\n            }\n        }\n    }\n\n    derinlikVideo.Source = BitmapSource.Create(genislik, yukseklik, 96, 96, PixelFormats.Bgra32, null, bitmap, (genislik * PixelFormats.Bgra32.BitsPerPixel) >> 3);\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp; T\u00fcm bunlar\u0131n ard\u0131ndan, elde etti\u011fimiz g\u00f6r\u00fcnt\u00fcm\u00fcz\u00fcn arkas\u0131na a\u015fa\u011f\u0131daki \u015fekilde bir ardalan yerle\u015ftirebiliriz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;Window x:Class=\"Com.Enterprisecoding.MerhabaKinect.MainWindow\"\n        xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\"\n        xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\"\n        Title=\"Merhaba Kinect\" Height=\"580\" Width=\"710\" Loaded=\"Window_Loaded\" Closed=\"Window_Closed\">\n    &lt;Grid>\n        &lt;Grid.Background>\n            &lt;ImageBrush ImageSource=\"\/MerhabaKinect;component\/ardalan.jpeg\" \/>\n        &lt;\/Grid.Background>\n        &lt;Image Name=\"derinlikVideo\" Stretch=\"Fill\" \/>\n    &lt;\/Grid>\n&lt;\/Window><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png\" alt=\"Uygulamam\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rmam\u0131z sonras\u0131nda Kinect sens\u00f6rleri \u00f6n\u00fcne ge\u00e7iti\u011fimizde uzaya \u00e7\u0131km\u0131\u015f olaca\u011f\u0131z\"\/><\/figure>\n\n\n\n<p>&nbsp;&nbsp; Her ne kadar bu i\u015flemler ard\u0131ndan istedi\u011fimiz g\u00f6r\u00fcnt\u00fcy\u00fc elde ediyor olsak da; kodumuz yo\u011fun \u015fekilde b\u00fcy\u00fck piksel gruplar\u0131 ile i\u015flem yapaca\u011f\u0131ndan g\u00f6r\u00fcnt\u00fcde kaymalar olabilir. Bunu en aza indirmek i\u00e7in ise yap\u0131lan i\u015flemleri yatayda i\u015flemcilere da\u011f\u0131tmak en do\u011frusu olacakt\u0131r. A\u015fa\u011f\u0131da ayn\u0131 mant\u0131\u011f\u0131 C# 4.0 ve TPL (<em>Task Parallel Library<\/em>) ile birlikte gelen <strong>Parallel.For<\/strong> fonksiyonu yard\u0131m\u0131yla paralelde i\u015fleyerek h\u0131zland\u0131rd\u0131\u011f\u0131m halini bulabilirsiniz;<\/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=\"\">private void kinect_VideoFrameReady(object sender, ImageFrameReadyEventArgs e) {\n    if (derinlikVerisi == null) return;\n\n    var genislik = 320;\n    var yukseklik = 240;\n\n    var videoGoruntusu = e.ImageFrame.Image.Bits;\n    var bitmap = new byte[genislik * yukseklik &lt;&lt; 2]; \/\/ genislik * yukseklik * 4\n\n    lock (derinlikVerisi) {\n        Parallel.For(0, yukseklik * genislik, xy => {\n            var x = xy % genislik;\n            var y = (int)(xy \/ genislik);\n\n            int veriIndeksi = (y * genislik + x) &lt;&lt; 1; \/\/ (y * genislik + x) * 2\n\n            int oyuncu = derinlikVerisi[veriIndeksi] &amp; 0x07;\n\n            if (oyuncu > 0) {\n                var yukseklikOfseti = y * genislik;\n                var hamDerinlikBilgisi = (short)(derinlikVerisi[veriIndeksi] | (derinlikVerisi[veriIndeksi + 1] &lt;&lt; 8));\n\n                var sonucPikselIndeksi = ((genislik - x - 1) + yukseklikOfseti) &lt;&lt; 2; \/\/ ((genislik - x - 1) + yukseklikOfseti) * 4\n\n                int xKordinati;\n                int yKordinati;\n\n                kinect.NuiCamera.GetColorPixelCoordinatesFromDepthPixel(\n                    e.ImageFrame.Resolution, e.ImageFrame.ViewArea, x, y, hamDerinlikBilgisi,\n                    out xKordinati,\n                    out yKordinati);\n\n                var videoPikselIndeksi = (xKordinati + (yKordinati * e.ImageFrame.Image.Width)) &lt;&lt; 2; \/\/(xKordinati + (yKordinati * e.ImageFrame.Image.Width)) *4\n\n                bitmap[sonucPikselIndeksi] = videoGoruntusu[videoPikselIndeksi];\n                bitmap[sonucPikselIndeksi + 1] = videoGoruntusu[videoPikselIndeksi + 1];\n                bitmap[sonucPikselIndeksi + 2] = videoGoruntusu[videoPikselIndeksi + 2];\n                bitmap[sonucPikselIndeksi + 3] = (byte)255;\n            }\n        });\n    }\n\n    derinlikVideo.Source = BitmapSource.Create(genislik, yukseklik, 96, 96, PixelFormats.Bgra32, null, bitmap, (genislik * PixelFormats.Bgra32.BitsPerPixel) >> 3);\n}<\/pre>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; Kinect ile birlikte sahip oldu\u011fumuz yetenekler biz yaz\u0131l\u0131mc\u0131lar\u0131n hayal g\u00fcc\u00fc ile birle\u015fince yap\u0131labileceklerde s\u0131n\u0131rlar kalk\u0131yor. \u00d6yle ki; Kinect istersek bizi uzaya bile \u00e7\u0131kartabilir\u2026 Bu makalemde, ad\u0131m ad\u0131m ilerledi\u011fimiz Kinect programlamada, video g\u00f6r\u00fcnt\u00fcs\u00fcnden ald\u0131\u011f\u0131m\u0131z ve sadece oyunculara ait olan g\u00f6r\u00fcnt\u00fcy\u00fc nas\u0131l bir ardalan \u00fczerinde g\u00f6sterebilece\u011fimizi g\u00f6rece\u011fiz. &nbsp;&nbsp; Hat\u0131rlarsan\u0131z, Kinect makale serisinin bir \u00f6nceki makalesinde i\u015fledi\u011fimiz&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/kinect-ile-uzaya-cikiyoruz\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[27,60],"class_list":["post-337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-turkce","tag-kinect","tag-kodlamak-eglencelidir"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kinect ile Uzaya \u00c7\u0131k\u0131yoruz - 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-ile-uzaya-cikiyoruz\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp; Kinect ile birlikte sahip oldu\u011fumuz yetenekler biz yaz\u0131l\u0131mc\u0131lar\u0131n hayal g\u00fcc\u00fc ile birle\u015fince yap\u0131labileceklerde s\u0131n\u0131rlar kalk\u0131yor. \u00d6yle ki; Kinect istersek bizi uzaya bile \u00e7\u0131kartabilir\u2026 Bu makalemde, ad\u0131m ad\u0131m ilerledi\u011fimiz Kinect programlamada, video g\u00f6r\u00fcnt\u00fcs\u00fcnden ald\u0131\u011f\u0131m\u0131z ve sadece oyunculara ait olan g\u00f6r\u00fcnt\u00fcy\u00fc nas\u0131l bir ardalan \u00fczerinde g\u00f6sterebilece\u011fimizi g\u00f6rece\u011fiz. &nbsp;&nbsp; Hat\u0131rlarsan\u0131z, Kinect makale serisinin bir \u00f6nceki makalesinde i\u015fledi\u011fimiz...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/kinect-ile-uzaya-cikiyoruz\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2011-08-30T14:17:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-03T15:30:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png\" \/>\n\t<meta property=\"og:image:width\" content=\"708\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz\",\"datePublished\":\"2011-08-30T14:17:00+00:00\",\"dateModified\":\"2021-01-03T15:30:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/\"},\"wordCount\":678,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png\",\"keywords\":[\"Kinect\",\"Kodlamak E\u011flencelidir\"],\"articleSection\":[\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/\",\"url\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/\",\"name\":\"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png\",\"datePublished\":\"2011-08-30T14:17:00+00:00\",\"dateModified\":\"2021-01-03T15:30:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png\",\"width\":708,\"height\":576},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz\"}]},{\"@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 ile Uzaya \u00c7\u0131k\u0131yoruz - 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-ile-uzaya-cikiyoruz\/","og_locale":"en_US","og_type":"article","og_title":"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz - Fatih Boy","og_description":"&nbsp;&nbsp; Kinect ile birlikte sahip oldu\u011fumuz yetenekler biz yaz\u0131l\u0131mc\u0131lar\u0131n hayal g\u00fcc\u00fc ile birle\u015fince yap\u0131labileceklerde s\u0131n\u0131rlar kalk\u0131yor. \u00d6yle ki; Kinect istersek bizi uzaya bile \u00e7\u0131kartabilir\u2026 Bu makalemde, ad\u0131m ad\u0131m ilerledi\u011fimiz Kinect programlamada, video g\u00f6r\u00fcnt\u00fcs\u00fcnden ald\u0131\u011f\u0131m\u0131z ve sadece oyunculara ait olan g\u00f6r\u00fcnt\u00fcy\u00fc nas\u0131l bir ardalan \u00fczerinde g\u00f6sterebilece\u011fimizi g\u00f6rece\u011fiz. &nbsp;&nbsp; Hat\u0131rlarsan\u0131z, Kinect makale serisinin bir \u00f6nceki makalesinde i\u015fledi\u011fimiz...Read More","og_url":"https:\/\/fatihboy.com\/en\/kinect-ile-uzaya-cikiyoruz\/","og_site_name":"Fatih Boy","article_published_time":"2011-08-30T14:17:00+00:00","article_modified_time":"2021-01-03T15:30:04+00:00","og_image":[{"width":708,"height":576,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png","type":"image\/png"}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz","datePublished":"2011-08-30T14:17:00+00:00","dateModified":"2021-01-03T15:30:04+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/"},"wordCount":678,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png","keywords":["Kinect","Kodlamak E\u011flencelidir"],"articleSection":["T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/","url":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/","name":"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png","datePublished":"2011-08-30T14:17:00+00:00","dateModified":"2021-01-03T15:30:04+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/08\/Kinect_Uzay.png","width":708,"height":576},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/kinect-ile-uzaya-cikiyoruz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"Kinect ile Uzaya \u00c7\u0131k\u0131yoruz"}]},{"@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\/337","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=337"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/337\/revisions"}],"predecessor-version":[{"id":340,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/337\/revisions\/340"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/338"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}