接続しているカメラ一覧を表示
概要
PCに接続しているカメラをコマンドラインで表示し、接続しているカメラすべてをライブ表示する方法について説明します。
サンプルプログラム
サンプル(Python) | list_devices_python.zip |
---|
サンプルの実行結果
コード全体
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)
#接続しているデバイスの数を取得する
devicecount = ic.IC_GetDeviceCount()
grabbers = []
#接続しているデバイス数ループを回す
for i in range(0, devicecount):
#デバイスの型番を表示する
print("Device {}".format(tis.D(ic.IC_GetDevice(i))))
#デバイス情報 + シリアルナンバーを取得
uniquename = tis.D(ic.IC_GetUniqueNamefromList(i))
print("Unique Name : {}".format(uniquename))
##新しいグラバーハンドルを作成します。
g = ic.IC_CreateGrabber()
#デバイスを開きます。
ic.IC_OpenDevByUniqueName(g, tis.T(uniquename))
grabbers.append(g)
for grabber in grabbers:
#デバイスが有効か確認
if(ic.IC_IsDevValid(grabber)):
#ライブスタート開始 引数:0の時非表示、引数:1の時表示
ic.IC_StartLive(grabber, 1)
ic.IC_MsgBox(tis.T("すべてのライブストリーミング停止します。"), tis.T("Live Video"))
for grabber in grabbers:
#デバイスが有効か確認
if(ic.IC_IsDevValid(grabber)):
#ライブストリーミング停止
ic.IC_StopLive(grabber)
for grabber in grabbers:
#デバイスが有効か確認
if(ic.IC_IsDevValid(grabber)):
#グラバーハンドルを解放
ic.IC_ReleaseGrabber(grabber)
解説
PCに接続しているIC_GetDeviceCountにてカウントすることができます。
デバイス取得方法は下記の2種類があります。
IC_GetDevice | 製品型番のみ |
---|---|
IC_GetUniqueNamefromList | 製品型番+シリアル番号 |
同じ製品型番で複数台のカメラを同時にする場合にはIC_GetUniqueNamefromListで指定する必要があります。
IC_OpenVideoCaptureDevice | 製品型番のみでデバイスを開く |
---|---|
IC_OpenDevByUniqueName | 製品型番+シリアル番号でデバイスを開く |