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

13 visualizaciones (últimos 30 días)
輝
el 27 de Dic. de 2023
Comentada: el 28 de Dic. de 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画像の表示

Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 27 de Dic. de 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 comentario
輝
el 28 de Dic. de 2023
ご回答ありがとうございます。
修正していただいた以下のコードに変更したらうまくいきました。
colorImage = permute(reshape(colorData',[3, color.get_width(),color.get_height()]),[3 2 1]);
ありがとうございます。

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!