Main Content

rosReadImage

ROS または ROS 2 イメージ データを MATLAB イメージに変換

R2021a 以降

説明

img = rosReadImage(msg) は、ROS または ROS 2 メッセージ構造体内の生イメージ データ (msg) をイメージ行列 (img) に変換します。'sensor_msgs/Image' メッセージまたは 'sensor_msgs/CompressedImage' メッセージのいずれかを使用して rosReadImage を呼び出すことができます。

ROS または ROS 2 イメージ メッセージ データは、MATLAB® の他のイメージ処理と互換性のない形式で保存されます。指定したエンコードに基づいて、この関数はデータを該当する MATLAB イメージに変換し、img に返します。

msgOut = rosReadImage(___,"Encoding",encodingParam) は、前述の入力引数のいずれかを使用して、イメージ メッセージのエンコードを名前と値の引数として指定します。メッセージの Encoding フィールドが設定されていない場合、この構文を使用してこのフィールドを設定します。この構文はコード生成ワークフローでのみサポートされ、MATLAB シミュレーションではサポートされません。

[img,alpha] = rosReadImage(___) は、イメージのアルファ チャネルを alpha に返します。イメージにアルファ チャネルがない場合、alpha は空になります。

入力引数

すべて折りたたむ

ROS または ROS 2 'sensor_msgs/Image' または 'sensor_msgs/CompressedImage' メッセージ。メッセージ構造体として指定します。

イメージ メッセージのエンコード。string スカラーとして指定します。この入力引数を使用すると、入力 msgEncoding フィールドが上書きされます。詳細については、サポートされているイメージのエンコードを参照してください。

依存関係

この引数はコード生成ワークフローでのみサポートされ、MATLAB シミュレーションではサポートされません。

出力引数

すべて折りたたむ

イメージ。センサー イメージに応じて、グレースケールまたは RGB イメージを表す行列か、m×n×3 の配列として返されます。

アルファ チャネル。uint8 グレースケール イメージとして返されます。アルファ チャネルが存在しない場合、alpha は空になります。

メモ

sensor_msgs/CompressedImage メッセージに対して、アルファ チャネルは出力できません。

ヒント

ROS または ROS 2 イメージ メッセージは、異なるエンコードをもつことができます。イメージでサポートされるエンコードは、'sensor_msgs/Image' および 'sensor_msgs/CompressedImage' メッセージ タイプで異なります。より少ない圧縮イメージがサポートされています。'sensor_msgs/Image' メッセージ タイプを使用したサイズ M-by-N の生イメージに対する次のエンコードがサポートされています ('sensor_msgs/CompressedImage' のサポートは太字)。

  • rgb8, rgba8, bgr8, bgra8: img はサイズ M-by-N-by-3rgb イメージです。アルファ チャネルは alpha で返されます。出力の各値は uint8 として表されます。

  • rgb16, rgba16, bgr16, and bgra16: img はサイズ M-by-N-by-3 の RGB イメージです。アルファ チャネルは alpha で返されます。出力の各値は uint16 として表されます。

  • mono8 イメージはサイズ M-by-N-by-1 のグレースケール イメージとして返されます。各ピクセル値は uint8 として表されます。

  • mono16 イメージはサイズ M-by-N-by-1 のグレースケール イメージとして返されます。各ピクセル値は uint16 として表されます。

  • 32fcX イメージはサイズ M-by-N-by-D の浮動小数点イメージとして返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は single として表されます。

  • 64fcX イメージはサイズ M-by-N-by-D の浮動小数点イメージとして返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は double として表されます。

  • 8ucX イメージはサイズ M-by-N-by-D の行列として返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は uint8 として表されます。

  • 8scX イメージはサイズ M-by-N-by-D の行列として返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は int8 として表されます。

  • 16ucX イメージはサイズ M-by-N-by-D の行列として返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は int16 として表されます。

  • 16scX イメージはサイズ M-by-N-by-D の行列として返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は int16 として表されます。

  • 32scX イメージはサイズ M-by-N-by-D の行列として返されます。ここで D は 1、2、3 または 4 になります。各ピクセル値は int32 として表されます。

  • bayer_X イメージは、サイズ M-by-N-by-1 の Bayer 行列、またはサイズ M-by-N-by-3 の変換済みのイメージのいずれかとして返されます (Image Processing Toolbox™ が必要です)。

'sensor_msgs/CompressedImage' メッセージ タイプを使用したサイズ M-by-N の生イメージに対する次のエンコードがサポートされています。

  • rgb8, rgba8, bgr8, and bgra8: img はサイズ M-by-N-by-3rgb イメージです。アルファ チャネルは alpha で返されます。各出力値は uint8 として表されます。

拡張機能

バージョン履歴

R2021a で導入