#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.