пороговое расстояние в глубину изображения opencvsharp c # intel realsense

#c# #opencvsharp #realsense

#c# #opencv #realsense

Вопрос:

Возможно, это глупый вопрос, но как вы можете установить пороговое значение, чтобы можно было изменить расстояние глубины камеры. Теперь я использую Cv2.threshold для этого, но с помощью метода otsu все изображение меняется на один цвет вместо разных цветов. Используемый код:

 var colorizedDepth = colorizer.Process<VideoFrame>(depthFrame).DisposeWith(frames);
                            Mat testcd = new Mat(colorizedDepth.Height, colorizedDepth.Width, MatType.CV_8UC3, colorizedDepth.Data);
                            Mat testgd = new Mat();
                            Cv2.CvtColor(testcd, testgd, ColorConversionCodes.RGBA2GRAY);
                            Mat testbd = new Mat();
                            Cv2.Threshold(testgd, testbd, 0, 255, ThresholdTypes.Otsu | ThresholdTypes.Binary);
                            Cv2.ImShow("camera", testgd);
                            Cv2.WaitKey(0);
  

Код для получения глубины цвета взят из оболочки librealsense:
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/csharp
Кто-нибудь знает, что я делаю неправильно для порога, чтобы изменить расстояния глубины?

Комментарии:

1. Цвет состоит из трех цветов RGB (красный, зеленый, синий), где каждый цвет равен 8 битам. Итак, если у вас есть изображение размером 640 x 480 (глубина), вы пытаетесь распределить цвет на 300 000 точек. Таким образом, вы можете сделать все точки зелеными, если ваш диапазон недостаточно велик.

2. Я не уверен, что понимаю вопрос; вы хотите установить минимальные / максимальные ограничения на значения глубины, возвращаемые камерой? Это можно сделать с помощью порогового фильтра , который используется аналогично фильтру colorizer.