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

毛のはえたようなもの

インターネット的なものをつらつらとかきつらねる。

C++

OpenCVとMFCを使う時の注意点

Microsoft Visual Studio2005において、OpenCVの顔検出を使っていて、いつの時から「ヒープが壊れている」と言われて落ちるようになった。 落ちている個所はdetectMultiScale関数だったので、OpenCVのバグを疑ったが、そうではなかった。 MFCを使う時の基本…

VisualStudioで管理者権限で実行するアプリケーションを作る

パソコンの奥深くの情報を探ってプログラムを書く必要が出てきたのでエントリ。 大部分、monaeデバッガが教えてくれましたが・・・・。 *.manifestでrequestedPrivilegesというのをいじる必要があるらしい ちょっと奥底にあるデータを読みだすアプリケーショ…

C++でOpenCV2.*の動画像キャプチャを行う

C++でOpenCV2.*の動画像キャプチャを行うだけのコード。 公式リファレンスに載っているのでなんの新規性もありません。 コピペ用。 #include "cv.h" #include "highgui.h" using namespace cv; int main( int argc, char** argv ) { //video VideoCapture ca…

Fern-ベースの点分類器,平面物体検出器

OpenCV2.*で実装されたと噂の「Fern-ベースの点分類器,平面物体検出器」のサンプルコードを試してみました。 はじめにがんばる分、SURFに比べてかなり早い印象。 おためし 上:探した画像 下:特徴点を対応付けたもの テレビ なんでテレビで試したのかは聞…

Doxygen+Graphvizでクラス図を自動生成する

卒論生成たけなわの皆さんお疲れ様です。終わった皆さんお疲れ様です。 卒論ページを埋めるためにクラス図を生成する必要がありましたので、メモです。 暇になったら加筆します。 クラス図とかソースコードの依存関係の図を自動生成したい ソースコードが先…

id:hayamizがMinipythonのコードをUPしたらしい

mini-pythonをCodeReposにて公開しました /lang/cplusplus/minipy/trunk – CodeRepos::Share – Trac汚い部分など整えてから公開しようかと思っていたのですが、公開のリクエストなどがあったのでとりあえず公開してから考えることにしました。簡単なREADMEな…

Minipythonベンチ結果ー2

先日のうんじょりな結果から大体一週間。 とりあえずテストが一つ終わり、週末になったのでMinipythonをいじることに。 …バグのでる場所が変わっている。コビトサンスゴイナー(・∀・)!!*1ちょこちょこと評価器の虫取りをしたのちベンチ。 ぉぉ、すごいな。St…

Python処理系発表会

発表資料 Google Slides - create and edit presentations online, for free. ご覧になられると分かりますが,ほとんどid:hayamizのおつくりになられたVMの話ばかりです。 高速化についてのヒントがあるので興味あるかたはどうぞ。というか、こんなブログみる…

Pythonのサブセット処理系

Pythonを縮小したPython処理系を作る演習。できる男として巷で有名なid:hayamizuとペアプログラミングしております。当方C++をこの処理系を作ることで覚えました。初心者ばんざーいヾ(・∀・)ノシパーサまでは本当に隣にならんで理論的な補佐をid:hayamizuにし…

HTTPサーバが出来た

Cookieをもしゃもしゃ食べている。わたしもくいたい。 結局在庫管理にMapを使った。

強力なライブラリ「boost」

String型の変数をint型にキャストしようと思ったのですが、コンパイルエラー。かといってC言語のatoiを使うのもなあ…と悩んでいました。友人M(別名:もなえデバッガ)に「lexical_castってグーグル先生に聞いてごらん」といわれ出会ったキャストの仕方。 【…

N-queens問題(エイトクイーンズ問題)

火曜日提出のプログラミング課題の一つにN-queens問題が出題されました。わたしは出題されるまで知りませんでした。うふ。アルゴリズム・もんだいについては以下をご覧ください。 N-queens 私のごみコード 一生懸命書いたけど、classでの配列の初期化がうま…

ネットワークプログラミング課題2-C++版

前日の記事のC言語のものを無駄にc++に書き直す。 #include <iostream> #include <string> #include <cerrno> #include <list> #include <sstream> #include <arpa/inet.h> #include <boost/xpressive/xpressive.hpp> using namespace std; class WebServer{ public: WebServer(); ~WebServer(); void Start(); private: int serverPort; int soc…</boost/xpressive/xpressive.hpp></arpa/inet.h></sstream></list></cerrno></string></iostream>

範囲に収まる数字の数(c++の場合)

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main(void){ int width; cin >> width; vector<int> num; int number; while(true){ cin >> number; if(number == 0) break; num.push_back(number); } sort(num.begin(), num.end(),greater<int>()); int i=0</int></int></algorithm></vector></iostream>…

相異なる文の種類の数(c++の場合)

#include <string> #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(void){ vector<string> line; string oneString; while(getline(cin,oneString) ){ if(oneString == "") break; line.push_back(oneString); } sort(line.begin(), line.end(),greater<string>()); i</string></string></algorithm></vector></iostream></string>…

重複する数字を表示(c++の場合)

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main(int argc,char* argv[]){ vector<int> num; int number; // ファイルからの入力 while(true){ cin >> number; if(number == 0){ break; } num.push_back(number); } // ソート sort(num.begin(), nu</int></vector></algorithm></iostream>…

k番目に大きい数(c++の場合)

#include <iostream> using namespace std; int compare_int(const int *a,const int *b){ return *b - *a; } int main(int argc,char* argv[]){ int num[1000]; int n, k, x; int i=0; cin >> n; cin >> k; while(cin >> num[i]){ i++; } qsort(num,n,sizeof(int),(in</iostream>…

右側折り返し(c++の場合)

#include <iostream> using namespace std; int main(void){ int num=0; char word; int maxlength=71; while(cin.get(word)){ if(word == '\n'){ num=0; }else if(num > maxlength){ cout << endl; num=0; }else{ num++; } cout << word; } return 0; }</iostream>

精度を要する割り算(c++の場合)

#include <iostream> #include <iomanip> using namespace std; int main(int argc,char* agrc[]){ double a; double b; while(true){ cin >> a; cin >> b; if(a==0 && b==0){ break; }else{ cout << setprecision(10) << a/b << endl; } } return 0; }</iomanip></iostream>

標準入力から一行づつ読み込み最大値を表示(C++の場合)

#include <iostream> using namespace std; int main(int argc,char* agrc[]){ int max, num; bool flag = false; while(cin){ cin >> num; if(flag ==false || max < num){ flag =true; max = num; } } cout << max << endl; return 0; }</iostream>