聞きかじりめも

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

ソースコード

TensorFlow初心者でもGANを学習できた

今回は流行りのネタ,DeepなLearningをしてみます.とは言っても公式チュートリアルをなぞるだけでは恐らくその後何も作れないので,ちょっとは頭で考えながらコードを書いていきます. この記事は,TensorFlowのチュートリアル通りにMNISTデータを学習でき…

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点のサブピク…

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

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

GLSLでOpenCV歪み補正を実装

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

OpenGLでカメラ画像を表示

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

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ファイル多すぎてやってらんな…

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

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