RealSense D455を用いてカラ​ー画像を取得するコー​ドはありますか?

45 views (last 30 days)
輝
on 27 Dec 2023
Commented: on 28 Dec 2023
Intel RealSense D455 を用いてMATLABでRGB画像を取得したかったので、こちらを参考に以下のコードを実行したのですが、求めている画像を取得することができませんでした。
Intel RealSense D455をWebカメラからRGB画像を取得するのと同じように使いたいので、詳しく分かる方いらっしゃいましたら、ご教授よろしくお願い致します。
pipe = realsense.pipeline();
profile = pipe.start(); % カメラから情報取得開始
for i=1:30
fs = pipe.wait_for_frames();
end
pipe.stop(); % カメラからの情報取得を停止
color = fs.get_color_frame();
colorData = color.get_data();
colorImage = permute(reshape(colorData',[color.get_width(),color.get_height(), 3]),[2 1 3]);
imshow(colorImage); % RGB画像の表示

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 27 Dec 2023
depthImage = reshape(depthData',[3,depth.get_width(),depth.get_height()]),[3 2 1]);
colorImage = reshape(colorData',[2,color.get_width(),color.get_height()]),[2 1]);
明らかに、上記リンク先のコードには複数の間違いが含まれています。
  • かっこの数が合わない ⇒ 最初に permute 関数名と括弧を書き忘れている
  • カラー画像はRGB3要素、デプスデータはステレオRL2要素だから、多分2と3が逆
  • 3次元データなので、permute 関数の2番目の引数は共に [3 2 1] のはずで [2 1] になるはずはない
@輝さんのコードはその点修正されていますが、一部は更に変更されています。
  • reshape 関数で「3要素、幅、高さの順」に切る説明なのに「幅、高さ、3要素の順」に変更した
  • 上記の為か、permute 関数で並べ替える次元の順序も [3 2 1] ではなく [2 1 3]に変更した
colorImage = permute(reshape(colorData',[color.get_width(),color.get_height(), 3]),[2 1 3]); % @輝さんのコード
colorImage = permute(reshape(colorData',[3, color.get_width(),color.get_height()]),[3 2 1]); % @kooooooさんのコード(一部修正)
↑↑↑ なので、reshape 関数および permute 関数の並び順変更を試す事を提案します。
【根拠】実行して確かめてないので信頼性に乏しいですが、下記の通り調べた根拠があります
colorData (行列データ) がどの順序で並んでいるか知る必要がありますが、Realsenseのカメラが無いし、あったとしても動かす時間がないし、ネットでデータ構造だけ検索しようとしても、なんかすごく複雑でよくわからない。。。ただなんとなくですが、1画素を構成する3要素のチャンク(塊)データが並んでいる事は確かな様です。MATLABのイメージデータは「行(高さ)、列(幅)、RGB」の順序なので、permute 関数で配列の次元を並べ替える必要があります。
【想定するデータの並び】(11列目){{R,G,B},{R,G,B},{R,G,B}},(12列目){{R,G,B},{R,G,B},{R,G,B}},{{R,G,B},{R,G,B},{R,G,B}},...
  1 Comment
輝
on 28 Dec 2023
ご回答ありがとうございます。
修正していただいた以下のコードに変更したらうまくいきました。
colorImage = permute(reshape(colorData',[3, color.get_width(),color.get_height()]),[3 2 1]);
ありがとうございます。

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Support Package for IP Cameras in Help Center and File Exchange

Tags

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!