IC Imaging Control (Python)

  • サンプルプログラムトップページ
  • デバイスのオープンとハンドリング
    • デバイスを開く
    • ダイアログボックスを使用してデバイスを開く
    • デバイスプロパティ設定の保存と復元
    • プロパティの設定方法
    • 接続しているカメラ一覧を表示
    • ROIの設定方法
    • オートフォーカスで焦点を調整する範囲を指定
    • デバイスロストの検出と再接続方法
  • イメージの取得
    • 8bit静止画保存
    • 16bit静止画保存
    • Enterキーを押下したときに画像保存
    • メモリーレコーディング
    • AVIファイル保存
  • 画像処理
    • コールバック関数の設定方法(OpenCVで二値化)
    • OpenCVで画像処理して表示する方法
    • ソフトウェアトリガー・外部トリガーの使用方法
    • ステレオカメラで表示
    • 2つのカメラで取得した画像の輝度値を平均してバーに表示する
  • IC Imaging Control3.5(pythonnet編)
    • Qtを使ったデモアプリ(pythonnet編)
    • カメラで取得した画像の輝度値を平均してバーに表示する
      (pythonnet編)
    • 動画保存(MediaStreamSink コーデック:H.264)
    • 露光時間・ゲインを設定し、静止画保存をする(pythonnet編)
  • リンク集

    ICImagingControl WEB APIリファレンスマニュアル/サンプルプログラム

    :日本語対応済み :日本語化準備中
    開発言語 APIリファレンスマニュアル サンプルプログラム
    C 4.0
    ()
    - - 4.0
    ()
    - -
    C++ 4.0
    ()
    3.5
    ()
    3.4
    ()
    4.0
    ()
    3.5 3.4
    ()
    C#/VB.NET 4.0
    ()
    3.5
    ()
    3.4
    ()
    4.0
    ()
    3.5
    ()
    3.4
    ()
    Python 4.0
    ()
    3.5 3.4
    ()
    4.0
    ()
    3.5 3.4
    ()

8bit静止画保存

概要

TheImagingSource社のカメラを使って、静止画保存する方法について説明します。

サンプルプログラム

サンプル(Python) save_image_python.zip

サンプルツールの出力

実行ファイルのフォルダ内にはsキーを押下した時にjpgファイルが保存されます。

コード全体

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)

#ダイアログ画面を表示
hGrabber = tis.openDevice(ic)

#デバイスが有効か確認
if(ic.IC_IsDevValid(hGrabber)):
    #ライブスタート開始 引数:0の時非表示、引数:1の時表示
    #ライブ画面は非表示にしています。
    ic.IC_StartLive(hGrabber, 0)
    key = ""
    while key != "q":
        print("sキー: 画像を保存")
        print("qキー: プログラム終了")
        key = input('sキーかqキーを押下してください。:')
        if key == "s":
            #2秒間フレームが送られてくるのを待つ
            if ic.IC_SnapImage(hGrabber, 2000) == tis.IC_SUCCESS:
                #test.jpgで保存
                ic.IC_SaveImage(hGrabber, tis.T("test.jpg"),
                                tis.ImageFileTypes['JPEG'], 90)
                print("保存しました。")
            else:
                print("2秒間フレームが送られてきませんでした。")

    ic.IC_StopLive(hGrabber)
else:
    ic.IC_MsgBox(tis.T("No device opened"), tis.T("Simple Live Video"))

ic.IC_ReleaseGrabber(hGrabber)

解説

if ic.IC_SnapImage(hGrabber, 2000) == tis.IC_SUCCESS:

SnapImageメソッド(ic.IC_SnapImage(hGrabber, 2000) )によって、スナップジョブのキューを作り、ImageBufferコレクションに1枚のフレームをコピーします。メソッドはフレームを取得した時、またはタイムアウト(上記の例では2秒(2,000msec))が発生した時に戻り値を返します。

#JPEGで保存する場合、第四引数は圧縮レベル(下記の例では画像品質1~100のうち90(低い程圧縮率が高い))
#圧縮レベルを下げると画質が落ちますが、保存容量を下げることができます。
ic.IC_SaveImage(hGrabber, tis.T("test.jpg"), tis.ImageFileTypes['JPEG'], 90)
#BMPで保存する場合
ic.IC_SaveImage(hGrabber, tis.T("test.bmp"),tis.ImageFileTypes['BMP'])

リングバッファに保存された画像はIC_SaveImageメソッドによってjpeg,bmp保存することが可能です。

▲ このページの先頭に戻る

Copyright © ARGO Corporation. All Rights Reserved.