The Imaging Source社のICImagingControlは、Windowsの開発環境、VisualStudioにて、同社の産業用カメラやビデオキャプチャデバイスを簡単に制御する為のソフトウェア開発キットです。
こちらはAPIリファレンスマニュアルページのサイトです。ICImagingControlはサンプルソースも多数用意されており、プログラム開発工数を最小化する事ができます。
-
このチャプターでは次の項目に関して説明いたします。
-
システム要件
-
プロジェクトを作成する
IC Imaging Controlを使ったプロジェクトを作成する方法は2つございます。
最も簡単な方法はプロジェクト・ウィザードを使用する方法です。
次のプロジェクト・ウィザード for Visual Studioプロジェクトウィザード>アプリケーションウィザードをご参照ください。手動でプロジェクトを作成したい場合はこちらをご覧ください。
Visual Studioでスタート -
アプリケーションの配布について
IC Imaging Controlを利用したアプリケーションを配布する場合、制御システムにIC Imaging Control の全コンポーネントをインストールする必要があります。
詳細はアプリケーションを配布する技術関連項目>アプリケーションの配布についてをご覧ください。
-
-
最新のIC Imaging Controlに新しく導入された機能、変更点について紹介します。
-
What's New in version 3.4 since version 3.3
IC Imaging Control 3.3 から IC Imaging Control 3.4への変更点について
OverlayBitmap が Y16 video format にもサポートされるようになりました。
Y16にセットされたvideo formatとsink formatのどちらにもOverlay Bitmapが使用できるようになりました。
有効なデバイスに変更があった場合に通知する機能が追加されました。
The newイベントは有効なデバイスに変化があった場合に通知するイベントICImagingControl.DeviceListChangedクラスライブラリリファレンス>クラス>ICImagingControl>DeviceListChangedが追加されました。
ビニングとスキッピング(sub-sampling)ビデオフォーマット機能の強化
VideoFormatクラスライブラリリファレンス>クラス>VideoFormat と VideoFormatDescクラスライブラリリファレンス>クラス>VideoFormatDesc クラスにビニングとスキッピング機能が追加、強化されました。以前使用されていたVideoFormat.BinningFactorクラスライブラリリファレンス>クラス>VideoFormat>BinningFactorはより詳細に設定できるようにVideoFormat.BinningFactorVerticalクラスライブラリリファレンス>クラス>VideoFormat>BinningFactorVerticalやVideoFormatDesc.SkippingFactorHorizontalクラスライブラリリファレンス>クラス>VideoFormat>SkippingFactorHorizontalに置き換わります。
-
-
Visual Basic 、Visual C# 用のウィザードでは、IC Imaging Control を使用したアプリケーションだけでなく、フレーム・フィルタ、フレーム・フィルタ モジュールも簡単にセットアップが可能です。
IC Imaging Control のウィザード名には全て"IC"が頭に付きます。例: "IC Frame Filter Class"
-
アプリケーション ウィザード
ここではウィザードを使用して新しいアプリケーションを作成する方法について説明します。
概 要
アプリケーションウィザードは多機能な画像アプリケーションの開発に使用されます。利用可能な機能には以下のものが含まれます。
- 画像取り込みデバイスを使用するためのイベントハンドラ
- 画像調整のためのイベントハンドラ
- ライブ映像のスタート、ストップを行うイベントハンドラ
- 前回使用したビデオキャプチャ デバイスの自動リロード
オプションとして以下のような機能も利用できます。
- 画像処理能力の追加
- ライブ画像の代わりに画像処理の結果を表示する
使用手順
まず最初にVisual Studioを起動し、スタートページが表示されたら新しいプロジェクト...をクリックします。それが表示されなかった場合、Visual Studio のメニューから、 ファイル -> 新規作成 -> プロジェクトと選択してください。
以下のようなダイアログが表示されます。IC 3.1 C# Applicationを選択し、名前の欄に"ImageProcessing"のようなプロジェクト名を入力します。それからOKを押すと、 プロジェクトのパラメータの設定が可能となります。
- Add toolbar check box
このボックスにチェックが入っている場合、アプリケーションのフォームにツールバーが追加されます。
- Add statusbar check box
このボックスにチェックが入っている場合、アプリケーションのフォームにステータスバーが追加されます。
- Image processing check box
このボックスにチェックが入っている場合、アプリケーションに画像処理メソッドが追加されます。 デモとして輝度反転の処理を追加します。
- Process image manually / Process images automatically radio buttons
ここでは以下の設定の選択をします。: i) ユーザーがメニューエントリーをクリックした時のみ画像処理メソッドをフレームに実行する。もしくは: ii) 自動的に全てのフレームに画像処理を行う。
- Display processed image check box
このボックスにチェックが入っている場合、 ライブ映像の代わりに画像処理の結果を表示させます。
設定後のアプリケーション
ここまでの設定が完了しましたらFinishを押してプロジェクトを終了させてください。ウィザードが新しいアプリケーションの作成をはじめ、以下のようなものが完成します。
ワンポイントアドバイスウィザードを使わずツールボックスからIC Imaging Controlコントロールパネル使用する方法について
-
フレームフィルタクラス ウィザード
ここではウィザードを使用して新しいフレームフィルタクラスを作成する方法について説明します。
概要
このウィザードはフレームフィルタ用のソースコードを作成します。 デモとして、実装された画像処理機能が取り込まれてくるフレームを反転するようになっていますが、これは上書きして変更することが可能です。
使用手順
ソリューションエクスプローラーにてプロジェクトを右クリックし、追加->新しい項目と選択するか、メインメニューよりプロジェクト->新しい項目の追加と選択します。そして次のダイアログにて IC Imaging Control 3.4をクリックし、IC Frame Filter Classを選択します。
追加をクリックすると次のダイアログにてフレーム・フィルタ・クラスを作成するのに利用可能なオプションが表示されます。
フィールド記述入力
- Class name
クラス名を表します。 e.g. InverterFilter.
- Namespace
新しいクラスが宣言されるネームスペース(名前空間)の名称を表しています。変更することも可能です。
- Filename
クラスのソースコードファイルの名前です。この名前はクラスウィザードによって決められています。変更することも可能です。
- Notify at start and stop live video
このボックスにチェックが入っている場合、ウィザードは LiveStartクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStart Method とLiveStopクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStop Method の際に呼び出されるメソッドFrameFilterImplクラスライブラリリファレンス>クラス>FrameFilterImpl よりも優先されます。 notifyStartクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl.notifyStart Method 、 notifyStopクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl.notifyStop Methodと呼ばれるメソッドです。m_bLiveVideoRunningと呼ばれる新たなブーリアン・メンバ変数がクラスに追加されます。 transformクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl.transform Method メソッドにおいてこの変数を使用し、ライブ画像表示中であるのかどうか、そしてそれに応じて何らかの処理を行う必要があるのかどうかを判断することができるようになります。
以上の手順で入力が終わりましたら、Finishボタンをクリックしてください。それからウィザードがクラスを作成します。
- Class name
-