読者です 読者をやめる 読者になる 読者になる

聞きかじりめも

主にC++やメディア処理技術などに関して気付いたことを書いていきます.ここが俺のメモ帳だ!

RealSenseをOpenCVで使う

今回紹介するクラスによって,RealSenseでVR or ARを実現するために必要なRealSenseの機能を簡単に使えるようになります.具体的には, RGBカメラ・デプスカメラ画像の取得 デプスマップをRGBカメラから見た画像(とその逆)の取得 デプスカメラを原点とする…

cv::Matにおけるclone()とcopyTo()の挙動の違い

※本記事はOpenCV Advent Calender 2016向けに書きました。 http://qiita.com/advent-calendar/2016/opencv OpenCVをちょっと知ってる人はこのタイトルで「何言ってんだこいつ」ってなったかも知れませんが,一見同じに見える(※後述)この2種類のdeep-copyメ…

cv::Mat画像のサブピクセル画素値を取得

久々にOpenCVのTips 画像処理をしていると,テクセルサンプリングのように浮動小数点座標の画素値を取り出したい場合が時々出てきます.そういう時って普通,整数座標の画素値を使ってバイリニア補間するんですけど,なぜか OpenCVでは「特定の1点のサブピク…

透視投影変換にガンマをかけて嘘パースを実現

VR

はじめに 今回の手法で次のような絵が撮れます. 本記事ではフリーのMMD描画アプリを利用して嘘パースの実験をしていますが,シェーダーレベルでアプリを改造する上,原理のみ紹介するので,CGデザイナよりもむしろエフェクトを開発するプログラマ向けの記事…

倒立振子制作日記(そのに)

PWMによる電流制御 前回の記事でも取り上げましたが,この記事によるとDCモータで出力制御系を構成するときは電圧入力ではなく電流入力にすると理論的扱いがしやすいとのことですので,私もこの記事と同様に電流入力系を構成しようと思います.(注:以下,…

倒立振子制作日記(そのいち)

はじめに 急に作りたくなったので. 私は一応,大学で機械工学を修め,ロボコンで実践的なロボット製作にも携わったことがある人間ですが,今ではすっかり情報系という半端モンでございます.研究でバーチャル空間にどっぷり漬かっている間にそろそろ機械工…

GLSLでOpenCV歪み補正を実装

OpenCVの歪み補正関数はcv::initUndistortRectifyMap()で予め作成したマッピング画像を使ってcv::remap()で歪んだカメラ画像を処理する,というものですが,このcv::remap()関数はOpenGLにやらせることもできます.それもプログラマブルシェーダGLSLを使った…

OpenGLでカメラ画像を表示

OpenCVは好きなんだけど標準の描画GUIであるHighGUIはWindowsマシンでは60fps以上出ない(過去記事参照)ので,私は最近では,画像処理だけOpenCVでやらせて描画ウィンドウはGLFWを使ってOpenGLで描画させる,という方法を採用しています.この方が圧倒的に…

デルタ型3Dプリンタキット「Zonestar D810」を組み立てた(そのさん)

もはやプリントできている状態なので組み立てたと言うタイトルはふさわしくない気もするのですが…それにしても自宅に3Dプリンタがある生活っていいですよね!動きを眺めているだけで休日が終わってしまった(笑) さて,今回はZonestar D810で任意のSTLデー…

デルタ型3Dプリンタキット「Zonestar D810」を組み立てた(そのに)

前回は到着まで書いたので,ここから組み立てに入ります(記事作成時点で動いてます). とは言っても殆どマニュアル通りなのでそんなに書くことはないです.中華3Dプリンタの場合はマニュアルが途中で終わっているとか部品表がないなんて事もあるらしいです…

デルタ型3Dプリンタキット「Zonestar D810」を組み立てた(そのいち)

前々からマイ3Dプリンタが欲しかった(自作したかった)のですが,最近やっとお金が貯まったので思い切ってキットを買っちゃいました.格安になるように自分で一から設計しようかとも思ったのですが,流石に本体からフィラメントまで諸々が揃っていながら2万…

OpenCVの内部パラメータでOpenGLの透視投影行列を作成(そのに)

以前にもOpenCVの内部パラメータでOpenGLの透視投影行列(フラスタム行列)を作成するコードを掲載しましたが,あれが数学的に何をやっているのかちょこっと解説します.元はパワポですが,SlideShareにアップロードするまでもない量と内容なので画像でスラ…

FlyCapture2 SDKがVS2015で動かなくなった件

生存報告も兼ねて. もう半年以上放置していたのは,しゅーろんとかいうクソイベとDの新生活が思っていた以上に忙しかったためです. PointGray社のFlyCapture2 SDKにバグがあったのでその報告と対策. 何が起こったのか 【以前】 Windows 8.1(64bit)環境で…

cv::waitKey()の処理時間を計測してみた

ニコ動っぽいタイトルになっちゃったけど嫌いな人は許して(笑) なんか遅くね? PointGray社のFlea3は最大120fpsまで出る素晴らしい高速カメラですが,OpenGLを使わずOpenCVだけと連携させたところ,どうしても64fps以上出ないという問題にぶち当たりました…

ARToolKitとOpenCVの歪み補正の違い

本記事ではARToolKitPlusを対象としますが,その本家であるARToolKitでも通用する話ですので,タイトルはARToolKitにしました. ARToolKitPlusでの歪み補正 ARToolKitPlusのレンズ歪みの式は次の通り.(ARToolKitの公式チュートリアルより引用) このように…

OpenCVで得たカメラ内部パラメータをOpenGLの射影行列に変換

なぜかネットに正しい情報が少ないのでメモ書き これまでのあらすじ ARアプリケーションはARToolKitを使うのが最も楽ですが,残念ながらARToolKitはGLUTに大きく依存しており,GLFW+GLEW+GLMを使ってモダンなOpenGLで開発している自分にとってこれは非常にあ…

画像ファイルのリネーム方法(VisualStudio 2013)

今回のTipsはOpenCVは殆ど関係ない(いや,ちょっと関係あるかも)です. 要件定義 OpenCVで画像処理していると,画像処理結果をちょこっとリネームして保存したいことがよくあります. 今回私がやりたいことは, ソースファイルと同じディレクトリにファイ…

OpenCVのチェスボードコーナー検出について

キャリブレーションプログラムをデバッグしてたら気付いたのでメモ. 結論から言うと,最近のOpenCVではcv::findChessboardCorners()を使う際にcv::cornerSubPix()は必要ない. 内部で何が行なわれているか? ネットに沢山転がっている典型的なチェスボード…

PointGray社のカメラを使い倒す

本記事は研究や高貴な趣味などでPointGray社の超小型高機能産業用カメラ(Flea3など)を使う人のためのTipsです.ソースコードだけ欲しい方は最後の方にすべてまとめたラッパークラスが書いてありますので,参考にしてください. ※注意!古いPointGrey FlyCapt…

虹色ペンライトを改造

今年の初めに作ってからというものずっと放置していましたが,ようやく記事にする気になりました. 一応身内には制作過程の資料を公開してたのですが... 組み込みプログラミングの部分はかなり端折っているので,この記事を読めば誰でもすぐに作れるって…

PCLでOBJファイルを表示(点群のみ)

PCLのチュートリアルでは点群データのファイル拡張子として.pcdを使っていますが,.pcdでない既存のファイルからも点群データを読み込んで表示したいという需要は大いにあると思います.例えば.objとか.stlとか.成功したコードを2通り載せておきます.他に…

C++/CLIでOpenGL描画する方法

C++/CLIのフォーム画面にOpenGLでレンダリングしたグラフィックを表示する方法をメモ書きします.なお,このTipsでは前回の内容をそのまま使っています. C++/CLIでOpenGLを描画する準備 1. OpenGLSimpleAdapter.hをインクルードする nursの日記様が作成した…

C++/CLIでウィンドウを生成する方法(VS2013)

すでにネットの海に腐るほどあるTipsですが,自分用メモとして残します.画像サイズがまちまちなのはWordファイルからの移植だからだと思います. ちなみに開発環境はVisual Studio 2013 Expressです. 1. 「新しいプロジェクト」で「空のプロジェクト」を選…

PCLのリンカスクリプト"PCLAdapter.h"

コーディング関連の記事を書くためのブログなのに載せるの2回目という... 最近になってPCL(Point Cloud Library)の勉強を始めました.日本語資料が少なくて大変なこのライブラリ,まともにプロジェクトに入れようとするとlibファイル多すぎてやってらんな…

ソリッドレイ研究所30周年記念イベント「EVA」感想

就活中でメンタルがヤバいのでずっと放置してたブログですが,落ち着いてきたのでちょっと近況報告. 6/4, 5に開催されたVRソリューションを扱う会社「ソリッドレイ研究所」の一大イベント「EVA~Exciting Visual Academy~」に参加してきました.このイベント…

スクフェスで学ぶ確率・統計(検定編)

前回の記事では,スクフェスを題材にしてベイズ的アプローチで確率推定してみました.今回はデータ収集・推定した結果をもとに細かな検証をしてみたいと思います.実は前回ベイズ推定で事後確率分布まで求めているので,それを使って信頼区間を示せば検定な…

スクフェスで学ぶ確率・統計(ベイズ推定編)

今回はスクフェスのイベント「メドレーフェスティバル(以下メドフェス)」を題材にして,統計の基礎を学ぼうという企画です.ベイズ統計の対象としては,離散値を扱うので非常に単純ですが勉強にはちょうどいいでしょう.ちなみに私は統計に関しては初歩的…

XAudio2をC++/CLIで使いたい 実装編

前回はXAudio2(というかSlimDX)を使う上での注意事項を散々書いてきたので,いよいよ今回は実装に移ります.C++/CLIの自分用覚書も兼ねてるので当たり前のことも書いています. あんまり一般的な書き方じゃない気もしますが,とりあえず動くものを作ってみま…

XAudio2をC++/CLIで使いたい

初めて書くブログなので見づらくてもご容赦を… VS2012から標準でUIプリセットが無くなり,Microsoftから見捨てられつつあるC++/CLIですが,OpenCVのようにC/C++ベースのAPIをフル機能で使いながらWindowsのGUIを作りたい俺にはC#という選択肢が無かった. 今…