Programming

OpenCVで画像の特徴抽出・マッチングを行う

概要 OpenCVでは特徴点抽出,特徴記述,特徴点のマッチングついて様々なアルゴリズムが実装されているが,それぞれ共通のインターフェースが用意されている.共通インターフェースを使えば,違うアルゴリズムであっても同じ書き方で使うことができる.特徴点…

OpenCVをVisual Studioで動かす(NuGetによりインストールする方法)

動作可能な条件 Visual StudioのNuGetパッケージマネージャでOpenCVをインストールして動作させる.Visual Studioのバージョンごとに方法をまとめる. バージョン 動作 Visual Studio Professional 2013 ○ Visual Studio Express 2013 for Windows Desktop ○…

C#でCSVファイルにデータを書き込む

CSVファイルからの読み込みは以下の記事 C#でCSVファイルからデータ読み込む(StreamReaderクラスとString.Splitメソッドによる方法) ソースコード 以下,ソースコード.appendのオン・オフによってファイルに追記するか新規作成するか選択できる. private…

OpenCVで超解像度画像を作成する

OpenCVのSuperResolutionクラス OpenCVの2.4.5あたりからSuperResolutionクラスという超解像度処理を行うモジュールが追加されたので,それを使う.現在Nugetでインストール可能なOpenCVのバージョンは2.4.7なのでSuperResolutionクラスが使用可能である.プ…

C#で顔検出をする(Accord.NETによる方法)

Accord.NET Frameworkのインストール C#で画像からの顔検出を行う.Accord.NET Frameworkで提供されているメソッドを使う.Accord.NET Frameworkは,機械学習や統計,コンピュータビジョン等の機能を.NETに提供するフレームワーク.「C#でWEBカメラを使う AF…

C#で平均・分散・標準偏差を計算する(Math.NET Numericsによる方法)

Math.NET Numericsのインストール .NET向けの数値計算ライブラリであるMath.NET Numericsを使う.Nugetからインストール可能である.プロジェクトの右クリックメニューから「Nugetパッケージの管理」をクリックし,出てきたダイアログで「Math.NET Numerics…

C#でキーボード操作する(SendKeysクラスによる方法)

SendKeysクラス キーボード入力をC#で自動化したい.SendKeysクラスのSendKeys.Sendメソッドを使う.SendKeys.Sendメソッドは,アクティブなアプリケーションにキーストロークを送ることができる. SendKeys.Send("test"); と書けば,"t","e","s","t"と順…

C#でグラフを描く(Chartコントロールによる方法)

Chartコントロールの追加 Visual StudioのChartコントロールを使う.Windows フォームアプリケーションを作成し,Chartコントロールを配置する.Chartコントロールはツールボックスの「データ」カテゴリの中にある. ソースコード sin波とcos波を描画するサ…

C#でCSVファイルからデータ読み込む(StreamReaderクラスとString.Splitメソッドによる方法)

ファイルへの書き込みは以下 C#でCSVファイルにデータを書き込む ソースコード ファイルからの読み込みにはStreamReaderクラスを,文字をカンマごとに区切るのにはString.Splitメソッドを使用する.Nugetで検索したら便利そうなライブラリはたくさんあるし,…

C#でWEBカメラを使う AForge.NETによる方法

概要 AForge.NET Frameworkを使う.AForge.NET Frameworkは,コンピュータビジョンとか人工知能の分野の開発者・研究者向けのフレームワーク.DirectShowでビデオを読み込むクラスが実装されているので,それを使う. 手順 「Windows フォーム アプリケーシ…

C#でExcelファイルを作成する ClosedXmlを使用

概要 C#でExcelファイルを出力したい.タイトルそのまま.「ClosedXML」というライブラリを使う. COMによる方法とかOpen XML SDKによる方法とかあるが,どうも面倒くさい手順が多い感じなので,簡単そうなClosedXMLを選択. インストール Nugetパッケージが…

OpenCVをVisual C++で簡単に使う

Visual Studio 2012以外の人は,バージョンごとに手順をまとめた以下の記事を参照. OpenCVをVisual Studioで動かす(NuGetによりインストールする方法) - whoopsidaisies's diary 何のための記事なの Visual C++でOpenCVを簡単に使う方法.OpenCVにつきも…

C#でOpenCVを動かす~NuGetでOpenCV.Netをインストール

2013/12/27追記) 2013/12/15にOpenCvSharpにも使いやすいNuGetパッケージが公開された.この記事で紹介するOpenCV.NetよりもOpenCvSharpのほうがおすすめ.以下のページに詳しい解説があるので参照. OpenCvSharpをつかう その17(NuGetで導入) - schima.hat…

C# CopyFromScreenでフォームの枠内をキャプチャする

Windows フォーム アプリケーションでタイトルバーと枠以外透明なフォームを作り,枠内をキャプチャする機能を付ける. CopyFromScreenメソッド 画面をキャプチャする方法はいくつかあるようだが,ここでは.Net Framework 2.0以降で提供されている,Graphics…

C# Windows フォーム アプリケーションでフォームのクライアント領域を透明にする

タイトルバーと枠だけ残して,あとは透明なフォームを作りたい.フォームのTransparencyKeyプロパティをいじってやればよい. this.TransparencyKey = this.BackColor; TransparencyKeyプロパティで指定した色が透明になる.BackColorプロパティはフォームの…

C#で指定した位置をクリックする

マウスの移動とクリック マウスの移動にはSetCursorPos関数,クリックにはmouse_event関数を使う.どちらの関数もUSER32.dllに実装されているため,DllImport属性を使用して宣言する.DllImport属性は,System.Runtime.InteropServices名前空間にあるのでusi…