2014年3月16日日曜日

【VisualStudio2012】C++でフォームアプリ

C++でWindowsフォームアプリケーションを作ったことがなかったので調べてみた。

要約すると、
1.空のCLRプロジェクトを作成
2.ソリューションエクスプローラーから右クリック->追加->UI->Windowsフォーム
3.フォーム追加時にくっついてきた.cppファイルに下記コードを追加


// MyForm.cpp
#include "MyForm.h"//フォーム名

using namespace CPP;//プロジェクト名「CPP」

[STAThreadAttribute]
int main(){
 Application::EnableVisualStyles();
 Application::Run(gcnew MyForm());
}

【コマンドプロンプトを消す】
1.プロパティ->リンカ->システム->サブシステムにWindows (/SUBSYSTEM:WINDOWS)と入力
2.詳細設定のエントリポイントにmainと入力し、OK

2014年3月9日日曜日

C#でOpenCVを動かす

C++で実装するのに難儀していたこともあり、どうにかC#で実装できないか調べていたところ、OpenCvSharpなるものを発見。

どうやら、NuGetからインストールするだけでC#からOpenCVを動かせるそうな・・・

なにこれすごい


詳細については下記リンク先にて紹介されているので割愛します。




早速二値化してみた。

【元画像】


【二値化】



【AdaptiveThreshold MeanC】


















CPU:i7 3930k@1200MHz
上記スペックで1600x1200の適応的二値化を行うと20ms付近とかなり短い処理時間となった。
ただし、GaussianCではブロックサイズを大きくするにつれて、処理時間も伸びていった為、高速ラインで使用するらなMeanCの方が適切かなーと。

他にもblob関数もあったり色々実装されてるのでOpenCV+C#の入門に丁度いい気がする。
とはいえ、さすがにすべての関数を網羅しているわけではないので、そこは注意してほしい。

GPGPUも実装してみたいなぁ・・・