astel-labs.net

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

  • Home
RSS
Category Archives: OpenCV

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

Posted on 2010年10月13日 by Nymphaea
No Comments

今回はカメラから取り込んだ画像を、ディストーションの補正と顔の検出を追加したサンプルです

利用したした web カメラは、サンワサプライの CMS-V27SET ×2です
ディストーションの補正に使用する設定ファイルは、このカメラであらかじめ作成しておいたものになります
接写用に補正がややきつくなっていますが、ほかのカメラでも補正した感じはわかると思います

ディストーション補正用の設定ファイルはカメラ毎に別途用意するべきですが、
サンプルではテストで利用したカメラが同じ製品のためコードの簡素化で敢えて共用しています
(同じ製品でもレンズの特性は若干異なる場合があり、安い製品の場合は特に品質にばらつきが大きい為)
(レンズ特性のばらつきを設定ファイルで補正できるレベルかどうかはさておき・・・・)

 

今回はおまけとしてサンプルコードに顔認識も追加していますが、こちらのコードは opencvsharp のサンプルコードをそのまま持ってきたものになりますので、特に解説は行いません

2台のカメラで同時に顔認識を行っているため処理もかなり重いです

 

 

Read more …

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

複数カメラを利用したリアルタイム画像処理 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, プログラミング

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

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

ここ最近、画像処理関連のお仕事を行っていたので、そのメモです

 

ふとした相談で、現在工業用カメラを用いて機器の測定を行っているものを、そこそこの精度でいいから安くできないか? と言われたことから、今回の結構大変だったソフト作成が始まったのでした・・・

事の始まりは、工業用カメラで 0.2mm の隙間を10万分の 1mm という精度で測定していたものを、別用途で50分の 1mm 程度の精度でよいからということで、安い web カメラ(USB カメラ)で接写した画像を処理することで測定したらどうかと提案してしまったのです

 

工業用カメラは画像解像度が高く、ディストーション(歪曲収差)と呼ばれるレンズの特性からくるレンズ外縁部の画像の歪みが少ないため、非常に高価です(会社で使っていたものは1台300万円以上らしいです)

工業用の距離測定カメラはどんなに安くても10万程度するため、ちょっとした検討で複数台を使った装置を作ろうとすると、画処理用FA機器と組み合わせると100万円単位で費用が発生してしまいます

一方で、web カメラといえば近くの量販店に行けば3000円~8000円程度で買えるカメラですが、工業用カメラとは対照的に画像解像度は低く(3000円の web カメラで 640×480 程度)、ディストーションが大きく測定用途では歪みが影響しすぎて普通は使えません

しかし、画処理をPC上で行うことができれば、実質の費用は web カメラ数台分で済んでしまいます
(わたしが作成したものは、カメラを含むシステムよりメカ屋さんが作成した固定用の置台のほうが高くついてます・・・)

 

今回の測定ではそれほど精度が高い必要はないので、精度については接写することで満足できそうですが、ディストーションの影響は可能な限り小さくなるように補正する必要があります

そこで、OpenCV というオープンソースの画像ライブラリを組み合わせて利用することにより、ディストーションを補正して安い web カメラでもそこそこの精度で測定ができるようになります

 

今回のお話はかなり長くなるので、数回に分けてのお話になります
Part 1 では、カメラを扱う前の画処理について OpenCV をプロジェクトに組み込む方法を説明します

Read more …

Categories: OpenCV, プログラミング

 

  • 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)として公開しています。
但し、サンプルプログラムに含まれる外部アセンブリが同様のライセンスとは限りませんので、利用する前に必ずすべてのライセンスの確認を行ってください。