Оптимизированный доступ к изображениям для роботов NAO

Мне просто интересно, использовал ли кто-нибудь пример «Оптимизированный доступ к изображениям» из раздела руководств на страницах справки naoqi?

http://doc.aldebaran.com/2-1/dev/cpp/examples/vision/optimizedimage/optimizedimage.html

я могу получить код для компиляции и создания модуля в naoqi, но я не понимаю, как его использовать. ни одна из функций не вызывается, и единственная инструкция по использованию модуля: «Чтобы получить изображения, подпишитесь, как обычно, с помощью прокси на ALVideoDevice, и укажите частоту кадров, разрешение и т. д.»

Во всех примерах получения изображений есть строка: ALValue img = camProxy.getImageRemote (clientName); который, похоже, не проходит через процедуру оптимизации.

у меня вопрос: как использовать модуль оптимизации в моем основном коде на С ++?


person JCS    schedule 26.04.2017    source источник


Ответы (1)


Нет связанного метода: идея состоит в том, чтобы персонализировать «модуль optimizedImage», поместив вашу обработку в это место: «/ ** Делайте любую обработку, которую хотите ... * /»

А затем после обработки, в зависимости от вашей архитектуры, вы можете решить опубликовать результаты в ALMemory или связать свой собственный метод в своем «optimizedModule», чтобы предоставить услуги вашему собственному приложению.

Между прочим: мне кажется странным, что предоставление вам просто указателя на изображение в другом процессе (поскольку вы находитесь в удаленном режиме, это означает, что это не ваш процесс), вы получаете разрешение на чтение данных.

Такая система не будет контролировать то, к чему может получить доступ каждый процесс, и поэтому в наши дни это кажется очень странным. (как какая-то старая система MS DOS)

Я помню, как делал такой код в NAO из кода Python для получения изображения, но тогда я находился в том же пространстве памяти (ALPythonBridge) и поэтому могу читать и интерпретировать необработанное изображение.

person Alexandre Mazel    schedule 26.04.2017
comment
Спасибо, Александр, просто чтобы уточнить, в какой момент код optimizedImage запускает / получает изображение (или указатель на)? это когда вызов: ALTools :: mainFunction (optimizedimage, argc, argv, sig); сделано или в какой-то другой момент? Я попробовал cout в разделе / ​​* делать что угодно .. кода, чтобы проверить это (должно печатать сообщение на удаленном компьютере, если я не ошибаюсь), но, похоже, ничего не произошло. - person JCS; 28.04.2017
comment
Как примечание, я помещаю операторы cout в раздел кода OptimizedImage :: init, и эти операторы печатаются на удаленном компьютере, когда я запускаю код optimizedImage, не запускается только cout в разделе обработки изображений. - person JCS; 28.04.2017