The Imaging Source社のICImagingControlは、Windowsの開発環境、VisualStudioにて、同社の産業用カメラやビデオキャプチャデバイスを簡単に制御する為のソフトウェア開発キットです。
こちらはAPIリファレンスマニュアルページのサイトです。ICImagingControlはサンプルソースも多数用意されており、プログラム開発工数を最小化する事ができます。
-
このチャプターでは次の項目に関して説明いたします。
-
システム要件
IC Imaging Control の最低システム要件は以下の通りとなります。
- Windows® 7 以降
- DirectX® 9.0c 以降
- Microsoft® Visual C++® 10 (2010)® 以降
- 1つ以上のTheImagingSource社のイメージデバイス
- Visual C++® 10 (2010)
- Visual C++® 11 (2012)
- Visual C++® 12 (2013)
- Visual C++® 14 (2015)
- Visual C++® 15 (2017)
- Visual C++® 16 (2019)
-
アプリケーションの配布について
必要とされるファイル
次のリストはIC Imaging Controlがきちんと動作するのに必要な全ファイルの一覧です。これらのファイルがクライアントコンピュータに存在しているのを確かめてください。それらのバージョンが適切であるかどうかも確認してください。バージョンが古い場合にはアップデートする必要があります。
デフォルトのIC Imaging Control インストールパスはMy Documents\IC Imaging Control 3.5です。
"My Documents"の部分は使用されるOSの言語によって異なりますので注意してください。32bitアプリケーション向けのバイナリファイルはredist\C++\win32に、64bit向けにはredist\C++\x64\ディレクトリ内にあります。64bit のファイルの名前には _x64が入ります。
以下のファイルが必要とされるものです。
32bitアプリケーション
● TIS_UDSHL12.dll64bitアプリケーション
● TIS_UDSHL12_x64.dllターゲットディレクトリ: アプリケーションディレクトリ
-
-
最新のIC Imaging Controlに新しく導入された機能、変更点について紹介します。
-
What's New in version 3.5 since version 3.4
IC Imaging Control 3.4 から IC Imaging Control 3.5への変更点について
概要
いくつかの新しいSink型が追加されました。これを利用することで、従来より低遅延な画像取得、画像処理タスクの高機能化が見込めます。また、いくつかのクラスやメソッドが追加・廃止されています。
新しいSink型の追加
以下、新しいシンク型が追加されました。これを利用することで、低遅延な画像取得、より簡単な画像処理タスクの組み込みが可能となりました。
Sink型 説明 FrameNotificationSinkクラスライブラリリファレンス>クラス>FrameNotificationSink 専用の画像バッファにコピーされる前に、アプリケーションから画像データに直接アクセスできます。これにより最小限のオーバーヘッドで画像データへアクセスができるようになりますので、外部の画像処理ライブラリに画像データを引き渡す際に便利です。 FrameSnapSinkクラスライブラリリファレンス>クラス>FrameSnapSink 1枚、または複数の画像をストリームから都度取得するのに使用できるシンク型です。 FrameQueueSinkクラスライブラリリファレンス>クラス>FrameQueueSink アプリケーションタスクが、入力されるすべてのフレームへのアクセスが必要な場合に使用するシンク型です。 新しい関数
ICImagingControl3.5で追加された、新しいクラスやメソッドです。
関数 説明 DShowLib::InitLibraryWithoutCOMクラスライブラリリファレンス>関数>InitLibraryWithoutCOM Method COMライブラリを初期化することなく、ICImagingControlのクラスライブラリを初期化する関数です。 新しいクラスと構造体
拡張されたクラス
削除されたメソッド及び、クラス
前のバージョンまで残っていたいくつかのクラスやメソッドは削除されたものがあります。これらの多くは新しいより有用なクラスに代替えされていますが、中には見つけるのが難しい類のプログラミングエラーの原因となるものもあります。
詳細は削除されたメソッドとクラスWhat's New>What's New in version 3.5 since Version 3.4>ICImagingControl3.5で削除されたメソッドとクラスを参照してください。
-
-
Visual C++ 2010以上では IC Imaging Controlを使ったアプリケーションを簡単にセットアップできるウィザードが用意されています。
-
ダイアログアプリケーションウィザード
ここではウィザードを使用してVisual C++ダイアログベースのアプリケーションプロジェクトを作成する方法について説明します。
概 要
Visual VC++プロジェクトを新規作成するには大変手間がかかるため、 IC Imaging Controlではアプリケーションウィザードを備えています。このウィザードではダイアログベースのアプリケーションを作成することができます。 以下のような機能を提供しています。
- ビデオキャプチャデバイス選択用のボタンハンドラ
- イメージセッティング用ボタンハンドラ
- ライブ画像の開始と停止用のボタンハンドラ
- 前に使用したデバイスを自動的にリロード
- 画像処理機能 -入力画像の取得と改変
使い方
まず最初にVisual Studioを立ち上げます。スタートページが表示されたら作成 をクリックします。もしくはVisual Studioのメニューから、ファイル -> 新規作成 -> プロジェクトと選択してください。
以下のようなダイアログが表示されます。プロジェクト名を入力し作成します。OK ボタンを押せば完成です。
ウィザードによってプロジェクトが作成されます。F5キーを押してプロジェクトを実行させてください。 作成されたダイアログアプリケーションはこのようになります。ライブイメージは輝度反転されています。これは入力されたフレームデータを取得して、各ピクセルの輝度値を演算して表示に反映させているからです。
画像処理はlistener.cppに作成されているDoImageProcessingで行われています。
画像処理が必要ない場合は、処理を毎フレームコールしている26行目をコメントアウトしてください。問題が生じる場合、多くは以下のような単純な原因が考えられます。
- お使いのデバイスがICImagingControlで利用できる状態であることをご確認ください。
- お使いのVisual Studio環境が最新であることを確認してください。
- プロジェクトのプロパティで、利用するWindows SDKバージョンが10.xに設定されていることを確認してください。
-