Main Content

readImage

ROS イメージ データを MATLAB イメージに変換

説明

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

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

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

すべて折りたたむ

ROS イメージ メッセージ (img) が含まれるサンプル ROS メッセージを読み込みます。

exampleHelperROSLoadMessages

ROS イメージ メッセージを MATLAB® イメージとして読み取ります。

image = readImage(img);

イメージを表示します。

imshow(image)

入力引数

すべて折りたたむ

'sensor_msgs/Image' または 'sensor_msgs/CompressedImage' の ROS イメージ メッセージ。Image オブジェクト ハンドルまたは Compressed Image オブジェクト ハンドルとして指定します。

出力引数

すべて折りたたむ

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

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

メモ

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

ヒント

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

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

R2019b で導入