{"id":2744,"date":"2014-12-13T23:59:42","date_gmt":"2014-12-13T23:59:42","guid":{"rendered":"http:\/\/kako.com\/blog\/?p=2744"},"modified":"2015-01-08T08:05:19","modified_gmt":"2015-01-07T23:05:19","slug":"ovrvision%e7%94%a8%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3%e3%83%bc%e3%82%bd%e3%83%95%e3%83%88%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%81%a6%e3%81%84%e3%82%8b-%e3%81%9d%e3%81%ae","status":"publish","type":"post","link":"http:\/\/kako.com\/blog\/?p=2744","title":{"rendered":"Ovrvision\u7528\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u30bd\u30d5\u30c8\u3092\u66f8\u3044\u3066\u307f\u3066\u3044\u308b (\u305d\u306e2)"},"content":{"rendered":"<p><a href=\"http:\/\/kako.com\/blog\/?p=2742\">Ovrvision<\/a>\u7528\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u30bd\u30d5\u30c8\u3092\u66f8\u3044\u3066\u307f\u3066\u3044\u308b\u3002<\/p>\n<p>OpenCV\u3068\u3044\u3046\u753b\u50cf\u51e6\u7406\u7528\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u30012\u3064\u306e\u30ab\u30e1\u30e9\u304b\u3089\u753b\u50cf\u3092\u53d6\u308a\u8fbc\u3093\u3067Oculus Rift DK1\u7528\u306b2\u679a\u306e\u753b\u50cf\u3092\u305d\u306e\u307e\u307e\u4f4d\u7f6e\u3060\u3051\u8abf\u7bc0\u3057\u3066\u51fa\u529b\u3057\u3066\u307f\u305f\u3002<br \/>\n\u89e3\u50cf\u5ea6\u304c\u7c97\u304f\u3066\u81ea\u5206\u306e\u624b\u3092\u6620\u3059\u3068\u30c9\u30c3\u30c8\u7d75\u306e\u3088\u3046\u306b\u8f2a\u90ed\u304c\u30ab\u30af\u30ab\u30af\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u3002(\u30c7\u30b8\u30ab\u30e1\u3067Oculus Rift DK1\u306e\u4e2d\u3092\u306e\u305e\u304d\u8fbc\u3093\u3067\u64ae\u5f71\u3057\u3066\u307f\u305f\u3002)<br \/>\n<a href=\"http:\/\/kako.com\/blog\/wp\/wp-content\/uploads\/2014\/12\/Rimg000411.jpg\"><img loading=\"lazy\" src=\"http:\/\/kako.com\/blog\/wp\/wp-content\/uploads\/2014\/12\/Rimg000411.jpg\" alt=\"Rimg0004\" width=\"640\" height=\"480\" class=\"alignnone size-full wp-image-3306\" srcset=\"http:\/\/kako.com\/blog\/wp\/wp-content\/uploads\/2014\/12\/Rimg000411.jpg 640w, http:\/\/kako.com\/blog\/wp\/wp-content\/uploads\/2014\/12\/Rimg000411-300x225.jpg 300w, http:\/\/kako.com\/blog\/wp\/wp-content\/uploads\/2014\/12\/Rimg000411-624x468.jpg 624w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\n<!--more--><\/p>\n<p>OpenCV\u3067DirectShow\u3092\u4f7f\u3063\u305f\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u304c\u3067\u304d\u308b\u3068\u3044\u3046\u306e\u3092\u6559\u3048\u3066\u8cb0\u3063\u305f\u306e\u3067\u3001\u5b89\u5b9a\u3057\u3066\u52d5\u304f\u3088\u3046\u306b\u306a\u3063\u305f\u3002<br \/>\n\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3082\u4e00\u5fdc\u3053\u3053\u306b\u6652\u3057\u3066\u304a\u304f\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n#include &quot;opencv2\/opencv.hpp&quot;\r\n\r\n#pragma comment( lib, &quot;lib\/opencv_core242.lib&quot;)\r\n#pragma comment( lib, &quot;lib\/opencv_highgui242.lib&quot;)\r\n#pragma comment( lib, &quot;lib\/opencv_imgproc242.lib&quot;)\r\n\r\nint main()\r\n{\r\n\tCvMemStorage *storage = 0;\r\n\tCvCapture *capture1 = 0;\r\n\tCvCapture *capture2 = 0;\r\n\tIplImage *frame1, *frame2, *frame1_copy, *frame2_copy, *image;\r\n\tCvRect rect1s,rect2s,rect1d,rect2d;\r\n\tstorage = cvCreateMemStorage(0);\r\n\tint w,h,adj;\r\n\t\r\n\t\/\/ open camera device\r\n\tcapture1 = cvCaptureFromCAM(CV_CAP_DSHOW + 0); \/\/ Right camera\r\n\tcapture2 = cvCaptureFromCAM(CV_CAP_DSHOW + 1); \/\/ Left camera\r\n\tif ((!capture1)||(!capture2)) {\r\n\t\tfprintf(stderr, &quot;Error: Camera not found.\\n&quot;); getchar();\r\n\t\treturn -1;\r\n\t}\r\n\t\r\n\t\/\/ Open image window\r\n\tcvNamedWindow(&quot;image&quot;, 0);\r\n\tcvSetWindowProperty(&quot;image&quot;,CV_WND_PROP_FULLSCREEN,CV_WINDOW_FULLSCREEN); \/\/ fullscreen\r\n\t\r\n\t\/\/ frame\r\n\tframe1      = cvQueryFrame(capture1);\r\n\tframe1_copy = cvCreateImage(cvGetSize(frame1), 8, 3);\r\n\tframe2      = cvQueryFrame(capture1);\r\n\tframe2_copy = cvCreateImage(cvGetSize(frame2), 8, 3);\r\n\timage = cvCreateImage(cvGetSize(frame1), 8, 3);\r\n\tw = image-&gt;width;\r\n\th = image-&gt;height;\r\n\tadj = w\/32;\r\n\trect1s = cvRect(w\/4+adj,0, w\/2,h);\r\n\trect2s = cvRect(w\/4-adj,0, w\/2,h);\r\n\trect1d = cvRect(w\/2,0, w\/2,h);\r\n\trect2d = cvRect(0  ,0, w\/2,h);\r\n\t\r\n\t\/\/ main loop\r\n\twhile(1) {\r\n\t\tif(cvWaitKey( 1 ) &gt;= 0) { break; } \/\/ any key to quit\r\n\t\t\r\n\t\tframe1 = cvQueryFrame(capture1); \/\/capture a frame\r\n\t\tframe2 = cvQueryFrame(capture2); \/\/capture a frame\r\n\t\t\r\n\t\tif (frame1-&gt;origin == IPL_ORIGIN_TL) {\r\n\t\t\tcvCopy(frame1, frame1_copy); \/\/ copy frame\r\n\t\t} else {\r\n\t\t\tcvFlip(frame1, frame1_copy); \/\/ flip-copy frame\r\n\t\t}\r\n\t\tif (frame2-&gt;origin == IPL_ORIGIN_TL) {\r\n\t\t\tcvCopy(frame2, frame2_copy); \/\/ copy frame\r\n\t\t} else {\r\n\t\t\tcvFlip(frame2, frame2_copy); \/\/ flip-copy frame\r\n\t\t}\r\n\t\t\r\n\t\tcvSetImageROI(frame1_copy,rect1s);\r\n\t\tcvSetImageROI(image,rect1d);\r\n\t\tcvCopy(frame1_copy, image); \/\/ copy frame\r\n\r\n\t\tcvSetImageROI(frame2_copy,rect2s);\r\n\t\tcvSetImageROI(image,rect2d);\r\n\t\tcvCopy(frame2_copy, image); \/\/ copy frame\r\n\t\t\r\n\t\tcvResetImageROI(image);\r\n\t\tcvResetImageROI(frame1_copy);\r\n\t\tcvResetImageROI(frame2_copy);\r\n\t\t\r\n\t\tcvShowImage(&quot;image&quot;, image); \/\/ display\r\n\t}\r\n\t\r\n\t\/\/ release\r\n\tcvReleaseCapture(&amp;capture1);\r\n\tcvReleaseCapture(&amp;capture2);\r\n\tcvDestroyAllWindows();\r\n\tcvReleaseImage(&amp;image);\r\n\tcvReleaseImage(&amp;frame2_copy);\r\n\tcvReleaseImage(&amp;frame1_copy);\r\n\t\r\n\treturn 0;\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ovrvision\u7528\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u30bd\u30d5\u30c8\u3092\u66f8\u3044\u3066\u307f\u3066\u3044\u308b\u3002 OpenCV\u3068\u3044\u3046\u753b\u50cf\u51e6\u7406\u7528\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u30012\u3064\u306e\u30ab\u30e1\u30e9\u304b\u3089\u753b\u50cf\u3092\u53d6\u308a\u8fbc\u3093\u3067Oculus Rift DK1\u7528\u306b2\u679a\u306e\u753b\u50cf\u3092\u305d\u306e\u307e\u307e\u4f4d\u7f6e\u3060\u3051\u8abf\u7bc0\u3057\u3066\u51fa\u529b\u3057\u3066\u307f [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,14],"tags":[],"_links":{"self":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2744"}],"collection":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2744"}],"version-history":[{"count":4,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2744\/revisions"}],"predecessor-version":[{"id":3308,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2744\/revisions\/3308"}],"wp:attachment":[{"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2744"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kako.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}