ダイアログボックスを使用してデバイスを開く
概要
ICImagingControl標準のデバイスダイアログを使用してデバイスを開く簡単なサンプルです。
サンプルプログラム
サンプル(Python) | open_device_with_built-in_dialog_python.zip |
---|
サンプル元:02-open-manually.py
https://github.com/TheImagingSource/IC-Imaging-Control-Samples
サンプルの出力
コード全体
#########
# 解説1
#########
import ctypes
import tisgrabber as tis
#tisgrabber_x64.dllをインポートする
ic = ctypes.cdll.LoadLibrary("./tisgrabber_x64.dll")
tis.declareFunctions(ic)
#ICImagingControlクラスライブラリを初期化します。
#この関数は、このライブラリの他の関数が呼び出される前に1回だけ呼び出す必要があります。
ic.IC_InitLibrary(0)
#########
# 解説2
#########
#ダイアログ画面を表示
hGrabber = ic.IC_ShowDeviceSelectionDialog(None)
#########
# 解説3
#########
#デバイスが有効か確認
if(ic.IC_IsDevValid(hGrabber)):
#ライブスタート開始 引数:0の時非表示、引数:1の時表示
ic.IC_StartLive(hGrabber, 1)
ic.IC_MsgBox(tis.T("Click OK to stop"), tis.T("Simple Live Video"))
ic.IC_StopLive(hGrabber)
else:
ic.IC_MsgBox(tis.T("No device opened"), tis.T("Simple Live Video"))
ic.IC_ReleaseGrabber(hGrabber)
解説
解説1:importで宣言する
#########
# 解説1
#########
import ctypes
import tisgrabber as tis
#tisgrabber_x64.dllをインポートする
ic = ctypes.cdll.LoadLibrary("./tisgrabber_x64.dll")
tis.declareFunctions(ic)
#ICImagingControlクラスライブラリを初期化します。
#この関数は、このライブラリの他の関数が呼び出される前に1回だけ呼び出す必要があります。
ic.IC_InitLibrary(0)
TISのIC Imaging Controlを使用するために、tisgrabber_x64.dllをインポートし、カメラの映像を取得するためのIC_CreateGrabberでグラバーハンドルを作成します。
解説2:importで宣言する
#ダイアログ画面を表示
hGrabber = ic.IC_ShowDeviceSelectionDialog(None)
#以下の方法でも可能
hGrabber = tis.openDevice(ic)
ここではICImagingControlが予め用意しているダイアログボックスを使用する方法を示しています。ダイアログでデバイスを選択し、解像度やフレームレートなどの設定を行います。[Device Settings]ダイアログ画面でOKボタンをクリックするとライブスタートが開始されます。["Click OK to stop"]のメッセージボックスの[OK]ボタンがクリックされるとプログラムが終了します。
ちなみにtisgrabber.pyではopenDeviceメソッドにてデバイス情報のxmlファイルがあれば読み込んで、無ければIC_ShowDeviceSelectionDialogメソッドでデバイスダイアログ表示するようになっているので、IC_ShowDeviceSelectionDialogメソッドの代わりに、openDeviceメソッドを使っていただくことも可能です。
解説3:ライブスタート
#########
# 解説3
#########
#デバイスが有効か確認
if(ic.IC_IsDevValid(hGrabber)):
#ライブスタート開始 引数:0の時非表示、引数:1の時表示
ic.IC_StartLive(hGrabber, 1)
ic.IC_MsgBox(tis.T("Click OK to stop"), tis.T("Simple Live Video"))
ic.IC_StopLive(hGrabber)
else:
ic.IC_MsgBox(tis.T("No device opened"), tis.T("Simple Live Video"))
ic.IC_ReleaseGrabber(hGrabber)
カメラの接続に上手くいけば、上記のようにフレームレートや解像度を指定し、IC_StartLiveメソッドでライブ開始すればカメラの画像をPCに取り込むことができます。なお、フレームレートや解像度を指定しなくてもIC_StartLiveメソッドを使用することも可能です。