質問編集履歴

2

訂正。「試したこと」の追記。

2022/09/26 03:33

投稿

ayo
ayo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,7 @@
12
12
  ![Processingキャプチャ画像 図1](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-25/0c9f3985-a5a0-4691-80b8-eb66e0eebf44.png)
13
13
 
14
14
  下画像(図2)のように0.5~16mの範囲で色が変わるようにgetDepthImage()で描画するためにはどのように設定をすればいいのか
15
+ (正確には画像では廊下の長さの関係で奥行きが分かりにくくなってしまったため最大値を13.1mに設定している)
15
16
 
16
17
  ~追記~
17
18
  距離が0.5mでは白、16mでは黒になるように設定したいということです。
@@ -24,10 +25,83 @@
24
25
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-25/06e80552-e835-43ae-949a-d1698d18f61d.png)
25
26
 
26
27
  分かる方、ぜひ教えてください。
28
+
29
+ ### 試したこと
30
+ サンプルの「ControlThresholdFilter」が問題解決に近いプログラムだと思い、数値を変えてみたが理想通りにならなかった。
31
+ 私の勘違いでなければ以下のような変更で図2と同じ描画がされると考える。
27
32
 
33
+ ControlThresholdFilter.pde
34
+ ```ここに言語名を入力
35
+ import ch.bildspur.realsense.*;
36
+ import ch.bildspur.realsense.type.*;
37
+ import ch.bildspur.realsense.processing.*;
38
+
39
+ RealSenseCamera camera = new RealSenseCamera(this);
40
+
41
+ RSThresholdFilter thresholdFilter;
42
+
43
+ float minDistance = 0.0f;
44
+ float maxDistance = 4.0f;
45
+ float size = 0.5f;
46
+ // ここを以下のように変更
47
+ // float minDistance = 0.5f;
48
+ // float maxDistance = 13.1f;
49
+ // float size = 12.6f;
50
+
51
+ boolean filterOn = false;
52
+
53
+ void setup()
54
+ {
55
+ size(1280, 720, FX2D);
56
+
57
+ // enable depth stream
58
+ camera.enableDepthStream(1280, 720);
59
+
60
+ // enable colorizer to display depth
61
+ camera.enableColorizer(ColorScheme.Warm);
62
+
63
+ // add threshold filter
64
+ thresholdFilter = camera.addThresholdFilter();
65
+
66
+ camera.start();
67
+ }
68
+
28
- ### 試したこと
69
+ void draw()
70
+ {
71
+ background(0);
72
+
73
+ // adjust filter
74
+ float filterCenter = map(mouseX, 0, height, minDistance, maxDistance);
75
+
76
+ if (filterOn) {
77
+ thresholdFilter.setMinDistance(constrain(filterCenter - (size * 0.5f), minDistance, maxDistance - size));
78
+
79
+ thresholdFilter.setMaxDistance(constrain(filterCenter + (size * 0.5f), minDistance + size, maxDistance));
80
+ }
81
+ // read frames
82
+ camera.readFrames();
83
+
84
+ // show color image
85
+ image(camera.getDepthImage(), 0, 0, width, height);
86
+ }
87
+
88
+ void keyPressed() {
89
+ thresholdFilter.setMinDistance(minDistance);
90
+ thresholdFilter.setMaxDistance(maxDistance);
91
+
92
+ filterOn = !filterOn;
93
+ }
94
+ ```
95
+
96
+ 変更した後の実行画面が図3である。
97
+ ※キー入力、マウス操作を行った後の実行結果である。
98
+
99
+ 図3
100
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-26/3f733762-ffd3-486d-9ac6-ffa79452bf8e.png)
101
+
102
+
29
103
  https://github.com/cansik/realsense-processing
30
- この下にマニュアルが書いてあり、フィルターの設定のところでいろいろいじってみたが理想通りにいかなかった。
104
+ また、この下にマニュアルが書いてあり、フィルターの設定のところでいろいろいじってみたが理想通りにいかなかった。
31
105
 
32
106
  ↑サイトの自分がいじったところのコピーを貼っておきます。
33
107
  ```ここに言語名を入力

1

文書の間違いを訂正。より具体的に説明するため画像を添付。

2022/09/25 08:08

投稿

ayo
ayo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,5 @@
1
1
  ### 前提
2
- Processingで公式が出しているREALSENSEを動かすサンプルをいじっています。
2
+ ProcessingでREALSENSEを動かすサンプルをいじっています。
3
3
  REALSENSE D455を使用しており、奥行き情報が映像でわかるためにgetDepthImage()を描画しています。
4
4
 
5
5
  ### 実現したいこと
@@ -7,7 +7,22 @@
7
7
  getDepthImage()で描画する際に、最大値の設定がうまくいっておらず
8
8
  約6mが奥行きの最大値に設定されているように見られます。
9
9
 
10
+ 下画像がProcessingを実行したときの画像です。
11
+ 図1
12
+ ![Processingキャプチャ画像 図1](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-25/0c9f3985-a5a0-4691-80b8-eb66e0eebf44.png)
13
+
10
- 0.5~16mの範囲で色が変わるようにgetDepthImage()で描画するためにはどのように設定をすればいいのか
14
+ 下画像(図2)のように0.5~16mの範囲で色が変わるようにgetDepthImage()で描画するためにはどのように設定をすればいいのか
15
+
16
+ ~追記~
17
+ 距離が0.5mでは白、16mでは黒になるように設定したいということです。
18
+ 図1,2の画像は家の廊下をデプス画像にしています。
19
+ 家の廊下は7,8m先に壁があるため
20
+ 図2では壁の色が灰色になっていますが、
21
+ 図1では5,6m先が真っ暗になってしまっているためこれをどうにか設定したいというのが私の希望です。
22
+
23
+ 図2
24
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-25/06e80552-e835-43ae-949a-d1698d18f61d.png)
25
+
11
26
  分かる方、ぜひ教えてください。
12
27
 
13
28
  ### 試したこと