sensor --- カメラセンサー¶
バージョン 4.5 で非推奨: sensor モジュールは非推奨です。代わりに新しい csi モジュール(csi --- カメラセンサー を参照)を使用してください。このモジュールに新機能が追加されることはなく、将来のリリースで削除される可能性があります。
sensor モジュールは、OpenMV Cam のメインカメラセンサーに対する従来のモジュールレベルのインターフェースです。すべての呼び出しは、単一の隠れた CSI インスタンスを操作するフリー関数であるため、複数のカメラを備えたボードのサポートには制限があります。古い OpenMV スクリプトとの後方互換性のために保持されています。新しいコードでは、代わりにオブジェクト指向の csi モジュールを使用してください。
関数名は、古い set_pixformat / set_framesize スタイルに従っています。各関数は csi.CSI のメソッドと一対一で対応しています。完全な機能セットと引数ごとの説明については、csi モジュールを参照してください。
使用例:
import sensor
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
while True:
img = sensor.snapshot()
関数¶
- sensor.snapshot() image.Image¶
カメラを使って写真を撮り、
image.Imageオブジェクトを返します。sensor.set_auto_rotation()が有効になっている場合、このメソッドは既に回転された新しいimage.Imageオブジェクトを返します。
- sensor.skip_frames(n: int | None = None, time: int = 300) None¶
カメラ設定を変更した後にカメラ画像を安定させるため、
nフレームまたはtimeミリ秒(指定された方)をスキップします。nもtimeも指定されていない場合、このメソッドは 300 ミリ秒間フレームをスキップします。両方が指定されている場合、このメソッドは
nフレームをスキップしますが、timeミリ秒後にタイムアウトします。
- sensor.get_fb() image.Image | None¶
前回の
sensor.snapshot()の呼び出しによって返された画像オブジェクトを返します。sensor.snapshot()が以前に呼び出されていない場合はNoneを返します。
- sensor.get_frame_available() bool¶
sensor.snapshot()を呼び出して読み取り可能なフレームがある場合はTrueを返します。
- sensor.alloc_extra_fb(width: int, height: int, pixformat: int) image.Image¶
バージョン 4.5 で非推奨: この関数は非推奨であり、
OSErrorを発生させます。代わりに新しいcsiモジュールを使用してください。
- sensor.dealloc_extra_fb() None¶
バージョン 4.5 で非推奨: この関数は非推奨であり、
OSErrorを発生させます。代わりに新しいcsiモジュールを使用してください。
- sensor.set_pixformat(pixformat: int) None¶
カメラモジュールのピクセルフォーマットを設定します。
pixformatは次のいずれかです:sensor.JPEG(OV2640/OV5640 のみ)
- sensor.set_windowing(roi: Tuple[int, int] | Tuple[int, int, int, int] | List[int]) None¶
カメラの解像度を、現在の解像度内のサブ解像度に設定します。
roiは矩形のタプル/リスト(x, y, w, h)です。(w, h)を渡すこともでき、その場合roiはフレームの中央に配置されます。引数は、アンパックされた位置整数として渡すこともできます。
- sensor.get_windowing() Tuple[int, int, int, int]¶
以前に
sensor.set_windowing()で設定されたroiタプル(x, y, w, h)を返します。
- sensor.set_gainceiling(gainceiling: int) bool¶
カメラ画像のゲイン上限を設定します。有効な値は
2、4、8、16、32、64、128です。成功時にTrueを返します。
- sensor.set_quality(quality: int) bool¶
カメラ画像の JPEG 圧縮品質を設定します。有効な範囲は
0から100です。成功時にTrueを返します。OV2640/OV5640 カメラのみ対応しています。
- sensor.set_auto_gain(enable: int, gain_db: float | None = None, gain_db_ceiling: float | None = None) None¶
enableは自動ゲイン制御をオン(1)またはオフ(0)にします。enableが0の場合、gain_dbを使ってデシベル単位で固定ゲインを設定できます。enableが 0 以外の場合、自動ゲイン制御アルゴリズムの最大ゲイン上限をgain_db_ceilingを使ってデシベル単位で設定できます。gain_dbとgain_db_ceilingはキーワード専用引数です。
- sensor.set_auto_exposure(enable: int, exposure_us: int = -1) None¶
enableは自動露出制御をオン(1)またはオフ(0)にします。enableが0の場合、exposure_usを使ってマイクロ秒単位で固定露出時間を設定できます。exposure_usはキーワード専用引数です。
- sensor.set_auto_whitebal(enable: int, rgb_gain_db: Tuple[float, float, float] | None = None) None¶
enableは自動ホワイトバランスをオン(1)またはオフ(0)にします。enableが0の場合、rgb_gain_dbを使って赤、緑、青の各チャンネルの固定ゲインをそれぞれデシベル単位で設定できます。rgb_gain_dbはキーワード専用引数です。
- sensor.set_auto_blc(enable: int, regs: List[int] | None = None) None¶
カメラの自動ブラックレベルキャリブレーション(BLC)制御を設定します。
enableは有効にする場合は1、無効にする場合は0です。regs無効の場合、以前にsensor.get_blc_regs()から読み取った値を使って BLC レジスタ値を手動で設定できます。リストの長さはセンサーの BLC レジスタ数と一致する必要があります。
- sensor.get_blc_regs() List[int]¶
センサーの BLC レジスタを整数のリストとして返します。
sensor.set_auto_blc()で使用します。
- sensor.set_transpose(enable: bool) None¶
転置モードをオン(
True)またはオフ(False)にします。デフォルトはオフです。vflip=False, hmirror=False, transpose=False -> 0 度回転
vflip=True, hmirror=False, transpose=True -> 90 度回転
vflip=True, hmirror=True, transpose=False -> 180 度回転
vflip=False, hmirror=True, transpose=True -> 270 度回転
- sensor.set_auto_rotation(enable: bool) None¶
自動回転モードをオン(
True)またはオフ(False)にします。デフォルトはオフです。OpenMV Cam にimuが搭載されている場合のみ動作します。
- sensor.set_framebuffers(count: int) None¶
画像データの受信に使用するフレームバッファの数を設定します。
countは1(シングルバッファ)、2(ダブルバッファ)、3(トリプルバッファ)、または4以上を指定できます。後者の場合、センサードライバはビデオ FIFO モードになり、受信したフレームがcount個のバッファから成る FIFO に格納されます。
- sensor.disable_delays(disable: bool | None = None) bool | None¶
disableがTrueの場合、センサーモジュール内のすべてのセトリングタイム遅延を無効にします。引数なしで呼び出された場合、遅延が無効になっていれば
Trueを返します。
- sensor.disable_full_flush(disable: bool | None = None) bool | None¶
disableがTrueの場合、フレームドロップ時の自動フレームバッファフラッシュが無効になります。引数なしで呼び出された場合、自動フラッシュが無効になっていれば
Trueを返します。
- sensor.set_special_effect(sde: int) bool¶
センサーに特殊デジタルエフェクト(SDE)を設定します。
sdeはsensor.NORMALまたはsensor.NEGATIVEのいずれかです。成功時にTrueを返します。
- sensor.set_lens_correction(enable: bool, radi: int, coef: int) bool¶
enableは有効にする場合はTrue、無効にする場合はFalseです。radiは補正するピクセルの半径(整数)です。coefは補正の強さです。成功時に
Trueを返します。
- sensor.set_vsync_callback(cb: Callable[[int], None] | None) None¶
カメラモジュールが新しいフレームを生成するたびに(ただしフレームが受信される前に)、コールバック
cbを(割り込みコンテキストで)実行するよう登録します。cbは 1 つの引数を取ります。変更後の vsync ピンの現在の状態です。登録を解除するには、呼び出し不可能なもの(例:
None)を渡します。
- sensor.set_frame_callback(cb: Callable[[], None] | None) None¶
カメラモジュールが新しいフレームを生成し、
sensor.snapshot()を介してフレームが読み取り可能になるたびに、コールバックcbを(割り込みコンテキストで)実行するよう登録します。cbは引数を取りません。登録を解除するには、呼び出し不可能なもの(例:
None)を渡します。
- sensor.ioctl(request: int, *args: Any) Any¶
センサー固有のリクエストを実行します。
requestはIOCTL_*定数のいずれかです。残りの位置引数と戻り値はリクエストによって異なります。サポートされているリクエストは、下記のセンサーファミリーごとに分類されています。汎用(任意のセンサー):
ioctl(IOCTL_SET_READOUT_WINDOW, (x, y, w, h))ioctl(IOCTL_SET_READOUT_WINDOW, (w, h))センサーの読み出しウィンドウを設定します。ウィンドウを小さくすると、視野角と引き換えにフレームレートが向上します。
ioctl(IOCTL_GET_READOUT_WINDOW)現在の読み出しウィンドウを
(x, y, w, h)タプルとして返します。ioctl(IOCTL_SET_TRIGGERED_MODE, enable)MT9V034 のトリガーモードを有効(
True)または無効(False)にします。ioctl(IOCTL_GET_TRIGGERED_MODE)現在のトリガーモードの状態を
boolとして返します。ioctl(IOCTL_SET_FOV_WIDE, enable)Trueの場合、set_framesize()にフレームレートよりも視野角を優先して最適化するよう指示します。ioctl(IOCTL_GET_FOV_WIDE)現在の FOV-wide の状態を
boolとして返します。ioctl(IOCTL_SET_NIGHT_MODE, enable)センサーの低照度「ナイトモード」を有効(
True)または無効(False)にします。OV7725 と OV5640 のみ対応しています。ioctl(IOCTL_GET_NIGHT_MODE)現在のナイトモードの状態を
boolとして返します。ioctl(IOCTL_GET_RGB_STATS)センサーから読み取った生の RGB チャンネル統計の 4 要素タプル
(r, gb, gr, b)を返します(通常はホワイトバランス調整に使用されます)。
OV5640 FPC -- オートフォーカス:
ioctl(IOCTL_TRIGGER_AUTO_FOCUS)OV5640 FPC モジュールでオートフォーカスのスイープを開始します。
ioctl(IOCTL_PAUSE_AUTO_FOCUS)進行中のオートフォーカスのスイープを一時停止します。
ioctl(IOCTL_RESET_AUTO_FOCUS)オートフォーカスの位置をデフォルトにリセットします。
ioctl(IOCTL_WAIT_ON_AUTO_FOCUS)ioctl(IOCTL_WAIT_ON_AUTO_FOCUS, timeout_ms)現在のオートフォーカスのスイープが完了するまでブロックします。
timeout_msを省略した場合のデフォルトは 5000 です。
FLIR Lepton:
ioctl(IOCTL_LEPTON_GET_WIDTH)Lepton 画像の幅をピクセル単位で返します。
ioctl(IOCTL_LEPTON_GET_HEIGHT)Lepton 画像の高さをピクセル単位で返します。
ioctl(IOCTL_LEPTON_GET_RADIOMETRY)Lepton のタイプ(放射測定型かどうか)を int として返します。
ioctl(IOCTL_LEPTON_GET_REFRESH)Lepton のリフレッシュレートを Hz 単位で返します。
ioctl(IOCTL_LEPTON_GET_RESOLUTION)Lepton の ADC 解像度をビット単位で返します。
ioctl(IOCTL_LEPTON_RUN_COMMAND, cmd)FLIR Lepton SDK コマンドを実行します。
cmdは SDK で定義された 16 ビットのコマンド ID です。ioctl(IOCTL_LEPTON_SET_ATTRIBUTE, attr_id, payload)Lepton SDK 属性を書き込みます。
attr_idは 16 ビットの属性 ID です。payloadは長さが 16 ビットの倍数でなければならないbytes/bytearrayです。ioctl(IOCTL_LEPTON_GET_ATTRIBUTE, attr_id, words)Lepton SDK 属性を読み取ります。
attr_idは 16 ビットの属性 ID です。wordsは読み取る 16 ビットワードの数です。bytearrayを返します。ioctl(IOCTL_LEPTON_GET_FPA_TEMP)Lepton の焦点面アレイ温度を摂氏で返します。
ioctl(IOCTL_LEPTON_GET_AUX_TEMP)Lepton の補助温度を摂氏で返します。
ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled)ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled, high_temp_enabled)Lepton を AGC 出力と直接温度出力の間で切り替えます。
measurement_enabled=Trueは直接温度出力を有効にします。オプションのhigh_temp_enabledフラグは高温範囲を選択します。ioctl(IOCTL_LEPTON_GET_MODE)2 要素タプル
(measurement_enabled, high_temp_enabled)を返します。ioctl(IOCTL_LEPTON_SET_RANGE, min_temp_c, max_temp_c)測定モードが有効な場合に
0..255にマッピングされる温度範囲を設定します。ioctl(IOCTL_LEPTON_GET_RANGE)現在の
(min_celsius, max_celsius)範囲を返します。
Himax HM01B0 -- 動き検出:
ioctl(IOCTL_HIMAX_MD_ENABLE, enable)HM01B0 のオンセンサー動き検出ブロックを有効(
True)または無効(False)にします。ioctl(IOCTL_HIMAX_MD_WINDOW, (x, y, w, h))ioctl(IOCTL_HIMAX_MD_WINDOW, (w, h))HM01B0 の動き検出ウィンドウを設定します。
ioctl(IOCTL_HIMAX_MD_THRESHOLD, threshold)動き検出のしきい値(
0--255)を設定します。ioctl(IOCTL_HIMAX_MD_CLEAR)動き検出の割り込みラッチをクリアします。
ioctl(IOCTL_HIMAX_OSC_ENABLE, enable)HM01B0 の内部発振器を有効(
True)または無効(False)にします。
Prophesee GENX320 -- イベントセンサー:
ioctl(IOCTL_GENX320_SET_BIASES, preset)バイアスプリセットを適用します。
presetはGENX320_BIASES_*定数のいずれかです。ioctl(IOCTL_GENX320_SET_BIAS, bias, value)単一のバイアスを設定します。
biasはGENX320_BIAS_*定数のいずれかです。valueは整数の設定値です。ioctl(IOCTL_GENX320_SET_AFK, enable)ioctl(IOCTL_GENX320_SET_AFK, enable, freq_low_hz, freq_high_hz)アンチフリッカーフィルターを設定します。
enableは bool です。オプションの周波数引数はフィルターの通過帯域を設定します。
- sensor.set_color_palette(palette: int) None¶
FLIR Lepton(および類似のセンサー)のグレースケールから RGB565 への変換に使用するカラーパレットを設定します。
paletteはimage.PALETTE_RAINBOW、image.PALETTE_IRONBOW、image.PALETTE_DEPTH、image.PALETTE_EVT_DARK、image.PALETTE_EVT_LIGHTのいずれかです。
定数¶
- sensor.OV2640: int¶
sensor.get_id()は OV2640 カメラの場合にこれを返します。
- sensor.OV5640: int¶
sensor.get_id()は OV5640 カメラの場合にこれを返します。
- sensor.OV7670: int¶
sensor.get_id()は OV7670 カメラの場合にこれを返します。
- sensor.OV7690: int¶
sensor.get_id()は OV7690 カメラの場合にこれを返します。
- sensor.OV7725: int¶
sensor.get_id()は OV7725 カメラの場合にこれを返します。
- sensor.OV9650: int¶
sensor.get_id()は OV9650 カメラの場合にこれを返します。
- sensor.MT9V022: int¶
sensor.get_id()は MT9V022 カメラの場合にこれを返します。
- sensor.MT9V024: int¶
sensor.get_id()は MT9V024 カメラの場合にこれを返します。
- sensor.MT9V032: int¶
sensor.get_id()は MT9V032 カメラの場合にこれを返します。
- sensor.MT9V034: int¶
sensor.get_id()は MT9V034 カメラの場合にこれを返します。
- sensor.MT9M114: int¶
sensor.get_id()は MT9M114 カメラの場合にこれを返します。
- sensor.BOSON320: int¶
sensor.get_id()は BOSON 320x256 カメラの場合にこれを返します。
- sensor.BOSON640: int¶
sensor.get_id()は BOSON 640x512 カメラの場合にこれを返します。
- sensor.LEPTON: int¶
sensor.get_id()は LEPTON1/2/3 カメラの場合にこれを返します。
- sensor.HM01B0: int¶
sensor.get_id()は HM01B0 カメラの場合にこれを返します。
- sensor.HM0360: int¶
sensor.get_id()は HM0360 カメラの場合にこれを返します。
- sensor.GC2145: int¶
sensor.get_id()は GC2145 カメラの場合にこれを返します。
- sensor.GENX320ES: int¶
sensor.get_id()は GENX320(エンジニアリングサンプル)カメラの場合にこれを返します。
- sensor.GENX320: int¶
sensor.get_id()は GENX320 カメラの場合にこれを返します。
- sensor.PAG7920: int¶
sensor.get_id()は PAG7920 カメラの場合にこれを返します。
- sensor.PAG7936: int¶
sensor.get_id()は PAG7936 カメラの場合にこれを返します。
- sensor.PAJ6100: int¶
sensor.get_id()は PAJ6100 カメラの場合にこれを返します。
- sensor.FROGEYE2020: int¶
sensor.get_id()は FROGEYE2020 カメラの場合にこれを返します。
- sensor.NORMAL: int¶
通常(SDE なし)の出力のために
sensor.set_special_effect()に渡します。
- sensor.NEGATIVE: int¶
ネガティブ画像出力のために
sensor.set_special_effect()に渡します。
- sensor.B64X32: int¶
64x32 解像度。
Image.find_displacement()やその他の FFT ベースのアルゴリズムで使用します。
- sensor.B64X64: int¶
64x64 解像度。
Image.find_displacement()やその他の FFT ベースのアルゴリズムで使用します。
- sensor.B128X64: int¶
128x64 解像度。
Image.find_displacement()やその他の FFT ベースのアルゴリズムで使用します。
- sensor.B128X128: int¶
128x128 解像度。
Image.find_displacement()やその他の FFT ベースのアルゴリズムで使用します。
- sensor.IOCTL_SET_READOUT_WINDOW: int¶
センサーの読み出しウィンドウを設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_GET_READOUT_WINDOW: int¶
センサーの読み出しウィンドウを取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_SET_TRIGGERED_MODE: int¶
トリガーモードを設定します(例:MT9V034 用)。
sensor.ioctl()を参照してください。
- sensor.IOCTL_GET_TRIGGERED_MODE: int¶
現在のトリガーモードの状態を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_SET_FOV_WIDE: int¶
sensor.set_framesize()を FPS よりも視野角を優先して最適化します。sensor.ioctl()を参照してください。
- sensor.IOCTL_GET_FOV_WIDE: int¶
現在の視野角優先(FPS よりも)の最適化状態を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_TRIGGER_AUTO_FOCUS: int¶
OV5640 FPC カメラモジュールでオートフォーカスをトリガーします。
sensor.ioctl()を参照してください。
- sensor.IOCTL_PAUSE_AUTO_FOCUS: int¶
OV5640 FPC カメラモジュールでオートフォーカスを一時停止します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_RESET_AUTO_FOCUS: int¶
OV5640 FPC カメラモジュールでオートフォーカスをリセットします。
sensor.ioctl()を参照してください。
- sensor.IOCTL_WAIT_ON_AUTO_FOCUS: int¶
OV5640 FPC カメラモジュールでオートフォーカスの完了を待ちます。
sensor.ioctl()を参照してください。
- sensor.IOCTL_SET_NIGHT_MODE: int¶
センサーのナイトモードを有効/無効にします。
sensor.ioctl()を参照してください。
- sensor.IOCTL_GET_NIGHT_MODE: int¶
現在のナイトモードの状態を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_WIDTH: int¶
FLIR Lepton 画像の幅をピクセル単位で取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_HEIGHT: int¶
FLIR Lepton 画像の高さをピクセル単位で取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_RADIOMETRY: int¶
FLIR Lepton のタイプ(放射測定型かどうか)を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_REFRESH: int¶
FLIR Lepton のリフレッシュレートを Hz 単位で取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_RESOLUTION: int¶
FLIR Lepton の ADC 解像度をビット単位で取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_RUN_COMMAND: int¶
16 ビットの FLIR Lepton SDK コマンドを実行します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_SET_ATTRIBUTE: int¶
FLIR Lepton 属性を設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_ATTRIBUTE: int¶
FLIR Lepton 属性を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_FPA_TEMP: int¶
FLIR Lepton の FPA 温度を摂氏で取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_AUX_TEMP: int¶
FLIR Lepton の AUX 温度を摂氏で取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_SET_MODE: int¶
FLIR Lepton の測定モードを設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_MODE: int¶
FLIR Lepton の測定モードの状態を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_SET_RANGE: int¶
FLIR Lepton の測定モードの温度範囲を設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_LEPTON_GET_RANGE: int¶
FLIR Lepton の測定モードの温度範囲を取得します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_HIMAX_MD_ENABLE: int¶
HM01B0 の動き検出を有効/無効にします。
sensor.ioctl()を参照してください。
- sensor.IOCTL_HIMAX_MD_WINDOW: int¶
HM01B0 の動き検出ウィンドウを設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_HIMAX_MD_THRESHOLD: int¶
HM01B0 の動き検出のしきい値を設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_HIMAX_MD_CLEAR: int¶
HM01B0 の動き検出の割り込みをクリアします。
sensor.ioctl()を参照してください。
- sensor.IOCTL_HIMAX_OSC_ENABLE: int¶
HM01B0 の内部発振器を有効/無効にします。
sensor.ioctl()を参照してください。
- sensor.IOCTL_GET_RGB_STATS: int¶
センサーから
(r, gb, gr, b)の RGB 統計を取得します。sensor.ioctl()を参照してください。
- sensor.IOCTL_GENX320_SET_BIASES: int¶
GENX320 センサーのバイアスプリセットを設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_GENX320_SET_BIAS: int¶
GENX320 センサーの単一のバイアスを設定します。
sensor.ioctl()を参照してください。
- sensor.IOCTL_GENX320_SET_AFK: int¶
GENX320 のアンチフリッカーフィルターのパラメータを設定します。
sensor.ioctl()を参照してください。