2013-01-01から1年間の記事一覧
C#でActiVizを使って,DICOM形式画像の連番ファイルを読み込みボリュームレンダリングにより3D画像を生成・表示する. ActiViz ActiVizは,3Dコンピュータグラフィックスの可視化ライブラリVTK(The Visualization ToolKit)のC#ラッパである.NuGetからイ…
ActiViz C#で3Dモデル表示する方法はたくさんあると思うが,今回は,3Dコンピュータグラフィックスの可視化ライブラリであるVTK(The Visualization ToolKit)の,C#ラッパ「ActiViz」を使った方法について書く.ActiVizおよびVTKの良さそうな点を以下にざっ…
AndroidでARを使って3DのPerfumeを手のひらに乗せてみる. AndAR Model Viewer AndAR Model Viewerというオープンソースで無料のAndroidアプリを使う.AndAR Model Viewerを使うと,Androidのカメラで撮影している映像のARマーカの上にリアルタイムで3Dモデ…
OpenCV 3.0.0-dev Vizモジュール OpenCV 3.0の開発ブランチを見ていたら,Vizという3D表示用のモジュールがあったので使ってみる.3D表示には,Point Cloud Libraryとかでも使われているVTKというオープンソースのライブラリが使われている. 環境 Windows 7…
例として,PictureBoxSizeMode列挙体のメンバをコンボボックスに表示し,選択された値がピクチャボックスのSizeModeプロパティに設定されるようにする. comboBox1.DataSource = Enum.GetValues(typeof(PictureBoxSizeMode)); comboBox1.DataBindings.Add(ne…
画像がぼやける 下の画像みたいに,10x10画素の画像を拡大してPictureBoxコントロールに標示させたい. そのまま表示させようとすると,以下みたいにアンチエイリアシングされてぼやけてしまう. 「画像を縮小するとピクセルにグラデーション?がかかる」に…
※追記:OpenCV 3.4.1版の記事は下記リンク。使えるアルゴリズムが増えている。whoopsidaisies.hatenablog.com 以降はOpenCV 2.4.7のサンプル。 背景差分 固定カメラで移動物体の検出をするのに有効な手法.OpenCV2.4.7では混合正規分布(Mixture of Gaussian …
ClosedXML C#でExcelファイルを読み込む.以下の記事で紹介したClosedXMLを使用する.インストールはNuGetから可能. C#でExcelファイルを作成する ClosedXmlを使用 - whoopsidaisies's diary サンプルコード ファイルを読み込んで,セルの値と数式を表示す…
tesseract-ocr tesseract-ocrはオープンソースのOCR(光学文字認識)エンジン.60以上の言語に対応しており,日本語の文字認識も可能. A .Net wrapper for tesseract-ocr tesseract-ocrはapiが用意されているが,そのC#ラッパー「A .Net wrapper for tesser…
オプティカルフロー 動画から密なオプティカルフローの計算を行う.SimpleFlowアルゴリズムによるオプティカルフロー,TV‐L1オプティカルフロー,Farnebackのオプティカルフロー,Broxのオプティカルフロー,Lucas-Kanade法によるオプティカルフロー等によっ…
OpenCVのcv::Algorithmのパラメータの名前・型・値を表示する. cv::Algorithm OpenCV2.4から導入された基底クラスcv::Algorithm.以下の引用のように,色々と便利. 新しい基底クラス cv::Algorithm の導入.これは「些細なものではない」全てのOpenCVの機…
xFunc.Maths グラフ描画を行うソフトxFuncの数式処理部分のライブラリxFunc.Mathsが公開されているので利用する.数式を記号的に扱うことができ,微分もできる.NuGet経由でインストール可能.ただし,NuGetで公開されているバイナリは.Net Framework 4.5.1…
概要 Axis.PixelPositionToValueメソッドと,ChartコントロールのMouseClickイベントを使う. Chartコントロールの追加 Windows フォームアプリケーションを作成し,Chartコントロールを配置する.Chartコントロールはツールボックスの「データ」カテゴリの…
概要 OpenCVでは特徴点抽出,特徴記述,特徴点のマッチングついて様々なアルゴリズムが実装されているが,それぞれ共通のインターフェースが用意されている.共通インターフェースを使えば,違うアルゴリズムであっても同じ書き方で使うことができる.特徴点…
動作可能な条件 Visual StudioのNuGetパッケージマネージャでOpenCVをインストールして動作させる.Visual Studioのバージョンごとに方法をまとめる. バージョン 動作 Visual Studio Professional 2013 ○ Visual Studio Express 2013 for Windows Desktop ○…
CSVファイルからの読み込みは以下の記事 C#でCSVファイルからデータ読み込む(StreamReaderクラスとString.Splitメソッドによる方法) ソースコード 以下,ソースコード.appendのオン・オフによってファイルに追記するか新規作成するか選択できる. private…
OpenCVのSuperResolutionクラス OpenCVの2.4.5あたりからSuperResolutionクラスという超解像度処理を行うモジュールが追加されたので,それを使う.現在Nugetでインストール可能なOpenCVのバージョンは2.4.7なのでSuperResolutionクラスが使用可能である.プ…
Accord.NET Frameworkのインストール C#で画像からの顔検出を行う.Accord.NET Frameworkで提供されているメソッドを使う.Accord.NET Frameworkは,機械学習や統計,コンピュータビジョン等の機能を.NETに提供するフレームワーク.「C#でWEBカメラを使う AF…
Math.NET Numericsのインストール .NET向けの数値計算ライブラリであるMath.NET Numericsを使う.Nugetからインストール可能である.プロジェクトの右クリックメニューから「Nugetパッケージの管理」をクリックし,出てきたダイアログで「Math.NET Numerics…
SendKeysクラス キーボード入力をC#で自動化したい.SendKeysクラスのSendKeys.Sendメソッドを使う.SendKeys.Sendメソッドは,アクティブなアプリケーションにキーストロークを送ることができる. SendKeys.Send("test"); と書けば,"t","e","s","t"と順…
Chartコントロールの追加 Visual StudioのChartコントロールを使う.Windows フォームアプリケーションを作成し,Chartコントロールを配置する.Chartコントロールはツールボックスの「データ」カテゴリの中にある. ソースコード sin波とcos波を描画するサ…
ファイルへの書き込みは以下 C#でCSVファイルにデータを書き込む ソースコード ファイルからの読み込みにはStreamReaderクラスを,文字をカンマごとに区切るのにはString.Splitメソッドを使用する.Nugetで検索したら便利そうなライブラリはたくさんあるし,…
概要 AForge.NET Frameworkを使う.AForge.NET Frameworkは,コンピュータビジョンとか人工知能の分野の開発者・研究者向けのフレームワーク.DirectShowでビデオを読み込むクラスが実装されているので,それを使う. 手順 「Windows フォーム アプリケーシ…
概要 C#でExcelファイルを出力したい.タイトルそのまま.「ClosedXML」というライブラリを使う. COMによる方法とかOpen XML SDKによる方法とかあるが,どうも面倒くさい手順が多い感じなので,簡単そうなClosedXMLを選択. インストール Nugetパッケージが…
Visual Studio 2012以外の人は,バージョンごとに手順をまとめた以下の記事を参照. OpenCVをVisual Studioで動かす(NuGetによりインストールする方法) - whoopsidaisies's diary 何のための記事なの Visual C++でOpenCVを簡単に使う方法.OpenCVにつきも…
2013/12/27追記) 2013/12/15にOpenCvSharpにも使いやすいNuGetパッケージが公開された.この記事で紹介するOpenCV.NetよりもOpenCvSharpのほうがおすすめ.以下のページに詳しい解説があるので参照. OpenCvSharpをつかう その17(NuGetで導入) - schima.hat…
Windows フォーム アプリケーションでタイトルバーと枠以外透明なフォームを作り,枠内をキャプチャする機能を付ける. CopyFromScreenメソッド 画面をキャプチャする方法はいくつかあるようだが,ここでは.Net Framework 2.0以降で提供されている,Graphics…
タイトルバーと枠だけ残して,あとは透明なフォームを作りたい.フォームのTransparencyKeyプロパティをいじってやればよい. this.TransparencyKey = this.BackColor; TransparencyKeyプロパティで指定した色が透明になる.BackColorプロパティはフォームの…
マウスの移動とクリック マウスの移動にはSetCursorPos関数,クリックにはmouse_event関数を使う.どちらの関数もUSER32.dllに実装されているため,DllImport属性を使用して宣言する.DllImport属性は,System.Runtime.InteropServices名前空間にあるのでusi…
- .NET (28)
- Accord.NET (3)
- AForge.NET (4)
- Android (1)
- AR (1)
- C# (35)
- C++ (17)
- d3.js (1)
- Deep Learning (3)
- Excel (2)
- javascript (1)
- LINQ (2)
- NuGet (20)
- OpenCV (17)
- OpenCV 3.0 (5)
- Programming (46)
- python (5)
- SVG (1)
- VBA (1)
- Windows フォーム アプリケーション (10)
- コンピュータビジョン (13)
- ディジタル信号処理 (2)
- ディジタル画像処理 (2)
- 可視化 (1)
- 機械学習 (4)
- 統計 (1)