powder_level_monitor package
Subpackages
Submodules
powder_level_monitor.data_control_values module
powder_level_monitor.data_surface_detection module
powder_level_monitor.image_stream_ctrl module
カメラ画像の継続取得、JPEG符号化、および EventBus 配信を制御する。
- class ImageStreamDeviceClass(camera_id=0, topic_name='camera.frame', interval_sec=0.1, capture_interval_sec=0.03, jpeg_quality=85, logger=None)[ソース]
ベースクラス:
objectカメラ画像を別スレッドで継続取得し、必要に応じてEventBusへJPEG配信する。
- パラメータ:
- _encode_frame(frame)[ソース]
OpenCV画像をJPEGへ符号化し、配信用メタデータを付与する。
- パラメータ:
frame (ndarray) -- BGR形式のOpenCV画像。
- 戻り値:
JPEG画像とフレーム識別情報を格納した辞書。
- 例外:
RuntimeError -- JPEG符号化に失敗した場合。
- 戻り値の型:
- _set_event_bus(event_bus)[ソース]
grpc_frame から渡された EventBus を画像配信処理へ設定する。
- パラメータ:
event_bus (Any) -- 画像イベントの配信に使用する EventBus。
- 戻り値の型:
None
- capture_once()[ソース]
カメラ接続を確保し、最新画像をJPEGペイロードとして取得する。
- 戻り値:
画像メタデータとJPEGバイト列を格納した辞書。
- 例外:
RuntimeError -- 接続失敗または規定時間内に画像を取得できない場合。
- 戻り値の型:
- get_latest_frame(copy_frame=True)[ソース]
スレッド間で保護された最新カメラ画像を取得する。
- パラメータ:
copy_frame (bool) -- Trueの場合は画像のコピーを返し、共有バッファの変更を防ぐ。
- 戻り値:
最新画像。画像未取得時は None。
- 戻り値の型:
ndarray | None
- publish_once()[ソース]
最新画像をJPEGへ符号化し、EventBusへ1回だけ配信する。
- 戻り値:
配信に成功した場合は True。
- 例外:
RuntimeError -- EventBusまたは最新画像が利用できない場合。
- 戻り値の型:
- start_stream()[ソース]
最新画像を一定周期で EventBus へ配信するスレッドを開始する。
- 戻り値:
配信を開始できた場合は True。
- 例外:
RuntimeError -- EventBus が設定されていない場合。
- 戻り値の型: