Open lopesnb opened 2 years ago
破線の両端の丸の中心間の距離を出してくれるらしい。 が何故か数字は表示されず。プログラムの中では36cmを表示しようとしていた。
数字を表示しないの何故だ?
別に問題なさそうなんだが、OpenGLの問題か?
とりあえず、対象を斜めにしても、印をつけたあたりに両端の丸を移動すれば大体同じ値になる。
// Draw white text label
// glColor4f(1.f, 1.f, 1.f, 1.f);
glColor4f(1.f, 0.f, 0.f, 1.f);
std::cout << str << std::endl;
draw_text(static_cast
とりあえず動作を確認したので、プログラムを詳しく見てみる。
以下の手順でデップスとカラーマップを関連付けたのだろうけど、簡単な疑問が発生した。 疑問 ・カラーマップはモノクロに変換? ・STREAM_COLORはSTREAM_RGB8を指定するわけは? ・RS2_OPTION_VISUAL_PRESETオプションの RS2_RS400_VISUAL_PRESET_HIGH_ACCURACYて何? ・空間フィルターも時間フィルタも内容が選択されてないが 何をやってるのか?
手順 カラーマップは黒から白へ? 画像の簡素化は2*2 穴は最大5まで塞ぐ STREAM_DEPTHを有効 STREAM_COLORはSTREAM_RGB8を有効 RS2_OPTION_VISUAL_PRESETオプション =RS2_RS400_VISUAL_PRESET_HIGH_ACCURACY while() { 裏スレッドで フレームセットを読み込んで アライメントして 画像を簡素化 デップスデータを視差データ 空間フィルタ 時間フィルタ 視差データをデップスデータ デップスデータをカラーマップに 表スレッドに渡す。 表スレッドはフレームセットを受け取って デップス、カラー、カラーデプスを読み出す カラーデップスを用いてデップスを表示 カラーイメージを表示 破線の両端の丸間の距離を計算(3次元的) 両端の両端を表示 }
measure.cppのプログラムを読んだ、 RS2_OPTION_VISUAL_PRESETオプション のRS2_RS400_VISUAL_PRESET_HIGH_ACCURACY は高い正確性らしいが、どう違うんだろう? 説明は無いのか?
ちなみにrs2_rs400_visual_presetに以下があるらしい。 RS2_RS400_VISUAL_PRESET_CUSTOM RS2_RS400_VISUAL_PRESET_DEFAULT RS2_RS400_VISUAL_PRESET_HAND RS2_RS400_VISUAL_PRESET_HIGH_ACCURACY RS2_RS400_VISUAL_PRESET_HIGH_DENSITY RS2_RS400_VISUAL_PRESET_MEDIUM_DENSITY RS2_RS400_VISUAL_PRESET_REMOVE_IR_PATTERN RS2_RS400_VISUAL_PRESET_COUNT
https://intelrealsense.github.io/librealsense/doxygen/rs__option_8h.html
なんだ!RealSenseViewerにオプションがあった。何となく違いがわかった。
再度プログラムを解析!
プリセット毎にいろんなパラメータの組み合わせがあるらく、 それによって空間や時間フィルタ、穴埋めがおこなわれてる様子。 しかし、パラメータの意味が不明で説明した資料は無いのか? 大雑把に適合するプリセットを選択して、微調整を経験でする ということなのか? それにしても、各パラメータの意味、使い方等の説明が欲しい。
用意されているプリセットのパターンを利用して、あとは質問を投げるしかないのか? https://github.com/IntelRealSense/librealsense/issues/1171
以下(measure)を試してみる
https://github.com/IntelRealSense/librealsense/tree/master/examples/measure