Main Content

readImage

(削除予定) ROS イメージ データを MATLAB イメージに変換

R2019b 以降

readImage は将来のリリースで削除されます。代わりに rosReadImage を使用してください。詳細については、ROS メッセージ構造体の関数を参照してください。

説明

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×n×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 で導入

すべて折りたたむ

R2021a: ROS メッセージ構造体の関数

これで、メッセージ オブジェクトのプロパティと一致するフィールドをもつ構造体としてメッセージを作成できます。通常、構造体を利用すると ROS メッセージの作成、更新、使用のパフォーマンスが向上しますが、設定時にメッセージのフィールドが検証されなくなります。メッセージ タイプと、構造体から取得した対応するフィールド値は、ネットワーク経由で送信されたときに検証されます。

メッセージ構造体を入力としてサポートするため、特殊な ROS メッセージに対して動作する新しい関数が導入されました。これらの新しい関数はメッセージ オブジェクトの既存のオブジェクト関数に基づいていますが、メッセージ オブジェクトの代わりに ROS および ROS 2 のメッセージ構造体を入力としてサポートします。

オブジェクト関数は将来のリリースで削除されます。

メッセージ タイプオブジェクト関数名新規関数名

Image

CompressedImage

readImage

writeImage

rosReadImage

rosWriteImage

LaserScan

readCartesian

readScanAngles

lidarScan

plot

rosReadCartesian

rosReadScanAngles

rosReadLidarScan

rosPlot

PointCloud2

apply

readXYZ

readRGB

readAllFieldNames

readField

scatter3

rosApplyTransform

rosReadXYZ

rosReadRGB

rosReadAllFieldNames

rosReadField

rosPlot

QuaternionreadQuaternion

rosReadQuaternion

OccupancyGrid

readBinaryOccupanyGrid

readOccupancyGrid

writeBinaryOccupanyGrid

writeOccupanyGrid

rosReadOccupancyGrid

rosReadBinaryOccupancyGrid

rosReadOccupancyGrid

rosWriteBinaryOccupancyGrid

rosWriteOccupancyGrid

OctomapreadOccupancyMap3D

rosReadOccupancyMap3D

PointStamped

PoseStamped

QuaternionStamped

Vector3Stamped

TransformStamped

apply

rosApplyTransform

すべてのメッセージshowdetails

rosShowDetails