Main Content

Image

イメージ メッセージを作成

説明

Image オブジェクトは、ROS での sensor_msgs/Image メッセージ タイプの実装です。このオブジェクトには、メッセージに関するイメージとメタ情報が格納されています。空白の Image メッセージを作成してからデータを入力するか、ROS ネットワーク経由でイメージ メッセージをサブスクライブすることができます。イメージを MATLAB® イメージに変換するには、関数 readImage を使用します。

作成

説明

msg = rosmessage('sensor_msgs/Image') は、空の Image オブジェクトを作成します。イメージ データを指定するには、msg.Data プロパティを使用します。rossubscriber を使用して、ROS ネットワークからこれらのイメージのメッセージを取得することもできます。

プロパティ

すべて展開する

このプロパティは読み取り専用です。

ROS メッセージのメッセージ タイプ。文字ベクトルとして返されます。

データ型: char

このプロパティは読み取り専用です。

ROS ヘッダー メッセージ。Header オブジェクトとして返されます。このヘッダー メッセージには、MessageType、シーケンス (Seq)、タイムスタンプ (Stamp)、および FrameId が含まれます。

イメージの高さ (ピクセル単位)。スカラーとして指定します。

イメージの幅 (ピクセル単位)。スカラーとして指定します。

イメージのエンコード。文字ベクトルとして指定します。

例: 'rgb8'

イメージ バイト シーケンス。true または false として指定します。

  • true — ビッグ エンディアン シーケンス。最小アドレス内の最上位バイトを格納します。

  • false — リトル エンディアン シーケンス。最小アドレス内の最下位バイトを格納します。

行の全長 (バイト単位)。整数として指定します。この長さは、イメージのカラー階調度とピクセル幅によって異なります。たとえば、RGB イメージはピクセルあたり 3 バイトであるため、幅が 640 のイメージは 1 ステップが 1920 になります。

イメージ データ。uint8 配列として指定します。

オブジェクト関数

readImageROS イメージ データを MATLAB イメージに変換
writeImageWrite MATLAB image to ROS image message

すべて折りたたむ

サンプルの ROS Image メッセージを MATLAB イメージに変換して、その読み取りと書き込みを行います。次に、MATLAB® イメージを ROS メッセージに変換します。

サンプルの ROS メッセージを読み込み、イメージ メッセージ データを検査します。img オブジェクトは、サンプルの ROS Image メッセージ オブジェクトです。

exampleHelperROSLoadMessages
img
img = 
  ROS Image message with properties:

    MessageType: 'sensor_msgs/Image'
         Header: [1x1 Header]
         Height: 480
          Width: 640
       Encoding: 'rgb8'
    IsBigendian: 0
           Step: 1920
           Data: [921600x1 uint8]

  Use showdetails to show the contents of the message

readImage を使用して Image メッセージから MATLAB イメージを作成し、表示します。

I = readImage(img);
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

MATLAB イメージから ROS Image メッセージを作成します。

imgMsg = rosmessage('sensor_msgs/Image');
imgMsg.Encoding = 'rgb8'; % Specifies Image Encoding Type
writeImage(imgMsg,I)
imgMsg
imgMsg = 
  ROS Image message with properties:

    MessageType: 'sensor_msgs/Image'
         Header: [1x1 Header]
         Height: 480
          Width: 640
       Encoding: 'rgb8'
    IsBigendian: 0
           Step: 1920
           Data: [921600x1 uint8]

  Use showdetails to show the contents of the message

msg = rosmessage('sensor_msgs/Image')
msg = 
  ROS Image message with properties:

    MessageType: 'sensor_msgs/Image'
         Header: [1x1 Header]
         Height: 0
          Width: 0
       Encoding: ''
    IsBigendian: 0
           Step: 0
           Data: [0x1 uint8]

  Use showdetails to show the contents of the message

バージョン履歴

R2019b で導入