ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

画像のフォーマット方式を別プロセスに伝えるには?

画像のピクセルフォーマット(エンコーディング)

画像データを別のプロセスに伝えるとき、ピクセルフォーマットを伝える必要があります。

この画像のピクセルフォーマットを表す値について、各ソフトウェアでバラバラです。

モータもバラバラです。というかそれ以前の問題でした。
nullpo24.hatenablog.com

例えば、ROS2は以下のように、

sensor_msgs: image_encodings.h Source File

定義が決められています。
というか言葉もピクセルフォーマットとエンコーディングでバラバラですね。

そして産業用カメラ業界では以下のようのピクセルフォーマットが定義されています。

https://www.emva.org/wp-content/uploads/PFNC.h

コンピュータは0,1で表される情報理論の世界です。
画像もまた0,1の世界です。
定義を揃えなければ(型がなければ)、意味が破綻します。

ROS2はMsgクラスで

sensor_msgs Msg/Srv Documentation

定義を揃えます。 (インターフェース)

また、ROS2のsensor_msgs/Image Messageは以下のような値をSetするよう求められます。

sensor_msgs/Image Documentation

ROSとOpenCVの場合

たとえ、同じStringでもやはりソフトウェアによって定義はバラバラです。
メジャーなソフトウェアは有志がBridgeを作成しています。

cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython - ROS Wiki