自習室

こもります

.C++

Visual c++ の同一ソリューション内ライブラリ参照と、ライブラリプロジェクトへの静的リンクライブラリのリンクの仕方。

概要 Visual Studio はエディターとして超優秀だけど、ビルド時の「追加の依存ファイル(静的リンクライブラリなど)」の指定や、インクルードパスの指定をする「プロジェクトプロパティ」がとてもわかりにくいし、それをわかりやすくしようとした結果生まれ…

RealSense SDK 2.0 を自力でビルドして、C++やUnityで使う@Windows

基本的な導入に関してやったことのメモ。 librealsenseに出したプルリクがマージされた。UnityでPointCloud(デプスの3次元座標情報)を扱うためのC# wrapper機能を追加したが、これでUnityで3次元的にPointCloudを描画したりできます。https://t.co/vhoCsmL…

OpenCV 3.3.1 で Yolo v2 for object detection を動かしてみる (Windows)

OpenCV 3.3.1 に YOLO v2 がちゃんと入ってた!サンプルは samples/dnn/yolo_object_detection.cpp https://t.co/hiGGjpUaLN— ミクミンP/Kazuhiro Sasao (@ksasao) 2017年10月24日 わーい! というわけで、とりあえずサンプルを動かしてみました。今回は速報…

Windows の openFrameworks でまともに動画再生の出来る ofxDSHapVideoPlayer を利用する (追記あり)

Mac だと通常の ofVideoPlayer でもそこそこ動画再生出来るのですが、 Windows だと、数十秒の HD 動画を再生するのもろくに出来ません。がたがたしたり、止まったりします。 oF コミュニティは基本 Mac な雰囲気なのでこの件は3年前に一度諦めていたのです…

ofxLibWebsockets で oF とウェブブラウザの間でお話しする

はじめに 相変わらず、ブラウザとopenFrameworks 間で共同作業させるシリーズです。 以前こんなものを書きました。 ycapture で OpenCV での処理結果を Windows のビデオソースとしてブラウザに流し込む - 自習室 html から node.js を介して oF の画像処理…

Kinect, OpenCV, openFrameworks のカラー画像を相互に変換する

はじめに 以前の記事で Kinectの ColorFrameReader から得た画像を ofImage 形式に変換して描画したりしましたが、いろいろ調べてみると、Kinect の画像形式から直接 ofImage に変換している例は意外と少ないようでした。そりゃまぁカラー画像をそのまま取得…

openFrameworks に Kinect for Windows SDK 2.0 の AudioBasics サンプルを移植する

はじめに 前回、Color画像のサンプルや FaceTracking のサンプルを移植しましたが、今回は Audioのサンプルを移植してみます。 AudioBasics-D2D このサンプルは、Kinectのマイクをつかって、1つの音源の方向を特定し、方向とその信頼度を可視化しつつ、リア…

openFrameworks で Kinect for Windows SDK 2.0 をまるっと利用する

はじめに この記事では、 ラッパなどを挟まず、 Kinect for Windows SDK 2.0 のフル機能を oF 内で直接利用する方法について調べた内容をまとめます。ラッパを利用しないのは、MSDN の公式リファレンスが非常にしっかりしているからです。ネットに転がってい…

改善版 reverse_iterator 使用中のerase()の仕方

2010年5月の記事にコメントいただいた reverse_iterator使用時のerase()の仕方 - 自習室 reverse_iterator使用時のerase()の仕方 - 自習室 この記事に、メモリ衝突が起きるよ、というコメントをいただきました。 自分がこの記事を書く際に使ったコードが見当…

openFrameworks の Shaderチュートリアル "09 gaussianBlur" のバグ

はじめに こちらの記事を読んで自分で試していたら、バグ(?)を見つけたので報告 http://www.openframeworks.cc/tutorials/graphics/shaders.html 配布されているコードをそのまま実行すると、ピクセルごとのcolorが不正な値で初期化されて、非常に出来の悪い…

VC++ 2008 で GTK+ のソフトウェアをビルド、実行する

http://mizzy.org/gtk/setup.xhtml http://blog.c--v.net/2005/12/27/2 このあたりを参考にさせていただきました、が、出来なかったので四苦八苦。 環境 windows7 professional 64bit visual studio 2008 Professional Edition 【入手】 http://www.gtk.org/…

glutCreateSubwindow

サブウィンドウ OpenGLのwindowの中に、サブウィンドウを作ることができる。便利すぎる!http://wiki.livedoor.jp/mikk_ni3_92/d/%c8%af%c5%b8%ca%d403%3a%3a%a5%b5%a5%d6%a5%a6%a5%a3%a5%f3%a5%c9%a5%a6 当然ちゃ当然だけど、二つのウィンドウで全く異なる…

reverse_iterator使用時のerase()の仕方

2014.11.01 追記 この記事で不完全なコードを乗せた結果エラーを招きやすい内容となっていたので、別の記事を書き直しております改善版 reverse_iterator 使用中のerase()の仕方 - 自習室 改善版 reverse_iterator 使用中のerase()の仕方 - 自習室 旧記事 li…

sscanf_s

"2D34F295D092"みたいな文字列を16進数と解釈して整数型に変換する〜みたいな話を以前しましたが、(この場合、49705431453842になります) int sscanf_s( const char *buffer, const char *format [, argument ] ... ); これを使って char hex[] = "2D34F295D…

unsigned long long に関する続報

C99 という新しいC言語仕様では long long 64bit の整数への対応が進んでいて strtoll() とかstrtoull() とか atoll() などという関数や、fscanf() で %ull と指定できたりいろいろあるみたいです。 http://seclan.dll.jp/c99d/c99d08.htm visual c++ では対…

visual c++ で unsigned long long 型の数値をテキストファイルから読み込む

long long unsigned int = 64bit = 8byte = char 8文字 = 16進数16文字 = 16^16 = 1.84467441 * 10^19 くらいの出現を想定している数値をテキストファイルから読み込むのに大変苦労しました。 100京てwwwテキストファイルの中身を読んで数値としてメモリに格…

OpenGL テクスチャの貼り方に関する補足

GL_BGR_EXT という色格納法指定 OpenCV の cvLoadImage() 関数を使って作られるIplImage::imgは、BGR の順で画像データを格納するので、そのままではOpenGLのテクスチャとして表示できない(出来るけど色が変わる) OpenGLでテクスチャ生成の際 gluBuild2DMipm…

OpenGL テクスチャの貼り方いろいろ

cvLoadImage() などOpenCV関数を利用する方法 http://wiki.livedoor.jp/mikk_ni3_92/d/OpenCV%a4%c7%c6%c9%a4%df%b9%fe%a4%e0開発環境によるようですが、 glTexImage2D() やgluBuild2DMipMaps() での画像のデータ格納法指定で GL_BGRやGL_BGRAが怒られる場合…

ソフトウェア開発について最近学んだテクニックなど(自分メモ)

clock_t が便利 #include clock_t now_time = clock()を使って、OpenGLなど、コマの進み方を制御すると、処理量の大小にかかわらず一定のスピードでコマを進められるから便利。わかりやすい。 //frame_length = 40; だと、25fps. nowtime = clock(); if((now…

staticなメンバ変数を正しく初期化する

クラスを定義して、.hと.cpp のファイルに分割する際にこれまでも何度か同じような引っかかり方をしてきた気がするのでメモ。 /*test.h*/ class test{ static int my_intarray[10]; //ここがまずい public: static void func(); }; /*test.cpp*/ #include "t…

Java -> C++ でTCP通信する際の writeUTF関数の問題

C++をサーバ、Java側をクライアントとする。Javaは java.io の中にSocket通信を司るクラス群を持っており、たとえば http://milkyway.merseine.nu/100java/Java/Java098.html にあるように簡単にTCP通信が可能。一方のC++の方ではVisual Studio上でWinsock2.…

winsock2.h で通信

正直、仕組みはよくわかっていない。言うとおりやったら出来た。出来たことをメモる。ノートPC二台間をルータ挟んでイーサネットで接続すると、ルータをデフォルトゲートウェイとして二台のPCに別々のIPアドレス(ローカルIP)が振られる。 こうやって接続され…

今日できたことメモ

昨日やり残していた、boostpro サイトからのVC++へのboostインストール 参考 : http://programmer-toy-box.sblo.jp/article/14267315.html チェック点は以下。 Select Default Variants では、Compilerは2005と2008対応、Variantsでは、Multithread Debug,DL…

Boost on Visual C++ 2008 Express Edition

やっとでけたーーーー参考にさせていただいた記事2件様 http://www.rk-k.com/memo/017.html http://www.sutosoft.com/room/archives/000515.html 2の記事があっさり書かれていたのでそちらに従って進めました。 boost ライブラリの現在の最新版 1.39.0 を使…

#ifdef と #ifndef

http://blog.s21g.com/articles/1058にあるとおり。簡潔。 静的ライブラリを作る練習(ちょー基本的) C++クックブック作者: D. Ryan Stephens,Christopher Diggins,Jonathan Turkanis,Jeff Cogswell,株式会社クイープ出版社/メーカー: オライリー・ジャパン…