astel-labs.net

C#などのプログラミングTipsや雑記をつらつらと書くかもしれないブログです。

  • Home
RSS
Category Archives: C#

複数カメラを利用したリアルタイム画像処理 Part2

Posted on 2010年9月28日 by Nymphaea
No Comments

前回の続きで、今回は2台の web カメラを利用した同時画像の読み取りを行います

今回利用した web カメラは、サンワサプライの CMS-V27SET を利用しています
(接写目的の web カメラって意外と見つからなかったのです)
次回掲載予定のディストーション補正では、このカメラを利用した場合の設定ファイルを利用します
(このカメラでなくとも、補正した感じはわかると思います)

 

web カメラを扱う方法としては、DirectX の Direct Show を利用した方法が真っ先に思いつくのですが、Direct Show は DirectX から Platform SDK (現在では Windows SDK)に移管されて以降、ほぼ目立った更新もなく現在では VC からでも若干扱いにくいままです

とはいえ、Direct Show 以外で web カメラを扱う方法は限られてしまう上に、フレームレベルでの操作を行えるものとなると、情報もほとんどないのが現状です

 

というわけで、Direct Show を使って web カメラを操作するしか道はなさそうなので、これを C# で扱う方法を考えます

ここでも C# からネイティブ DLL を呼ぶのはいろいろ面倒なので、ラッパーライブラリを探すと、Code Project に DirectShow.NET なるものが見つかります
(更新そのものは 2002 年で止まっているようです)
しかも、ライセンスは「パブリックドメイン」で公開されていますので、頒布の際にもライセンスを気にする必要がありません
※ソースをダウンロードする際には Code Project にユーザー登録をする必要がありますので注意してください

 

これで C# から web カメラを扱う方法が整ったので、実際にカメラを接続して画像を読み取ってみましょう

Read more …

Categories: C#, OpenCV, プログラミング

プロセス実行時にパスが通っているかをチェック

Posted on 2010年8月19日 by Nymphaea
No Comments

前回からずいぶんと間が空いてしまいました

今回は、System.Diagnostics.Process クラスの Start メソッドを利用してアプリケーションを実行する際に、Process.StartInfo.FileName プロパティに設定するファイル名がフルパス名ではなかった場合に、指定したアプリケーションのパスがきちんと通って、かつ実体が存在しているかをチェックする必要があったため調べてみたのですが、なんとなく .net の標準機能ではそこまでチェックできそうにありませんでした
(Process.Start メソッド自体は、パスさえ通っていればフルパス名ではなくとも実行してくれます)

 

そこで、素直に環境変数を取得して「PATH」に登録されているパスと結合しながらチェックしていく方法を紹介します

 

Read more …

Categories: C#, プログラミング

Xmlファイルにリソースファイルを埋め込む

Posted on 2010年7月21日 by Nymphaea
No Comments

仕事で作成していたアプリの設定ファイルに画像ファイルを埋め込む要件があったので、そのメモです

 

設定ファイルとして使用している Xml ファイルに操作方法のサムネイルを埋め込み、そのサムネイルをアプリに表示する必要があったため、簡単に作成してみました

 

Xml ファイルはテキストファイルのため、リソースとして埋め込みたいバイナリファイルは一旦文字列に変換する必要があります

そこで、「バイナリファイルを文字列に変換」で思いつくのはメールの添付ファイルだと思います

メールの添付ファイルでは、Base64 というエンコード方法を使うことでバイナリデータから文字列データに変換し、テキストファイルに張り付けられています

Xml でも同じように、Base64 を用いることでバイナリファイルをリソースとして埋め込むことができます

 

Read more …

Categories: C#, プログラミング

WPF – タイマースレッドからWindow内のコントロールを操作

Posted on 2010年7月5日 by Nymphaea
No Comments

WindowsForms アプリケーションから WPF アプリケーションに移行する際、
タイマースレッドを使って処理を行い、その結果をメインスレッドのコントロールに結果を表示するなどをしていた場合に、Form から派生したメインウィンドウの BeginInvoke メソッドを使ってタイマースレッドからメインウィンドウのコントロールを操作していたと思います

しかし、WPF の Window クラスには BeginInvoke メソッドや Invoke メソッドは無いため、Window クラスの Dispatcher を利用してメインスレッドを操作する必要があります

Read more …

Categories: C#, WPF, プログラミング

C#でZip圧縮形式ファイルの操作

Posted on 2010年6月30日 by Nymphaea
No Comments

C# でZipなどの圧縮形式ファイルを操作したいということはよくあると思います
(ありますよね?

 

.net にもZip形式のファイルを扱う標準クラスライブラリはいくつかありますが、複数のファイルを圧縮したいなどの一般的な用途には使えるとは言えません
・GZipStreamクラス(System.IO.Compression名前空間)
・ZipPackageクラス(System.IO.Packaging名前空間)

 

「C# zip」などのフレーズでネットを検索すると、いくつかの .net 対応 zip 操作ライブラリが見つかりますが、自作したアプリケーションにライブラリを添付したいと思うと、ライセンスが気になります

そこでお勧めなのが、マイクロソフトが公開している「DotNetZip Library」です

「DotNetZip」は、マイクロソフトがもっとも制限の緩い「Microsoft Permissive License (Ms-PL)」ライセンスで公開しているライブラリです

 

Read more …

Categories: C#, プログラミング

WPFで簡単なウィザードを作成する

Posted on 2010年6月29日 by Nymphaea
No Comments

WPF では、標準でウィザードを作成することはできず、Win32API を利用するなどの必要があります

しかし、WPF では「ナビゲーション」や「ページ」といった機能があるため、これらを利用して簡単なウィザードを作成することができます

 

ページを利用して再利用可能な UI を作成する方法としては、

1.Window の代わりに、直接 Page を呼び出す
2.Window 上に Frame を配置して、Frame に Page を表示する
3.PageFunction に Page を配置する
4.NavigationWindow に Page を配置する

など、いくつか方法があります

 

今回は、4.の NavigationWindow を利用した方法でウィザードを作成してみます

 

Read more …

Categories: C#, WPF, プログラミング

WPF – LinkLabelの作成

Posted on 2010年5月31日 by Nymphaea
No Comments

WindowsFormsからWPFに移行する際に、いくつかのコントロールがWPFでは実装されていないため戸惑うことがあります

 

Microsoftのページで対応表が公開されていますが(ページを探すのが面倒だったので自力で探してみてください・・・)、WPFでは実装されていないLinkLabelについて、簡単なサンプルを作成してみます

LinkLabelで検索するといくつかのサンプルが見つかると思いますが、わたしは今回作成するサンプルが一番簡単に実装できると思います

こんな感じ

 

Read more …

Categories: C#, WPF, プログラミング

WPFを使って、Windows7のタスクバーボタンのプログレス表示

Posted on 2010年5月1日 by Nymphaea
No Comments

FileDownload.zipWindows7では、IEでファイルをダウンロードする際などに、タスクバーボタンに進捗を表示することができます


↑こんな感じ

 

これは.net framework4 でWPFを利用することで、簡単に実装できます

今回は、この実装方法をファイルのダウンロードツールの作成をしながら説明します
(といっても、この処理は数行で実装できるのでダウンロードツールを作った時になんとなく入れてみたサンプルです)

Read more …

Categories: C#, WPF, プログラミング

 

Next Entries
  • 2025年5月
    日 月 火 水 木 金 土
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
    « 3月    
  • 最近の投稿

    • raspberry pi に nginx をセットアップする
    • VSCode を日本語化する
    • raspberry pi に VSCode をインストールする
    • WindowsのプロダクトIDを取得する
    • SQL Server – money型とdecimal型を併用した金額計算
  • アーカイブ

    • 2020年3月
    • 2016年12月
    • 2014年6月
    • 2014年5月
    • 2013年7月
    • 2012年11月
    • 2012年7月
    • 2012年5月
    • 2012年4月
    • 2011年4月
    • 2011年1月
    • 2010年11月
    • 2010年10月
    • 2010年9月
    • 2010年8月
    • 2010年7月
    • 2010年6月
    • 2010年5月
    • 2010年4月
  • カテゴリー

    • C#
    • jQuery
    • OpenCV
    • raspberry pi
    • SharePoint
    • Silverlight
    • SQL Server
    • WCF
    • WPF
    • プログラミング
    • 未分類
    • 雑記
© astel-labs.net. Proudly Powered by WordPress | Nest Theme by YChong

このブログ内で公開されているソースコードおよびサンプルプログラムに関わるライセンスはすべて修正BSDライセンス(New BSD License)として公開しています。
但し、サンプルプログラムに含まれる外部アセンブリが同様のライセンスとは限りませんので、利用する前に必ずすべてのライセンスの確認を行ってください。