2014-09-26 4 views
-1

Я новичок в Azure, но у меня уже есть 8-ядерная машина с установленным Ubuntu 12.04 и OpenCV. Кроме того, у меня есть исполняемый файл (C++), который получает изображение в качестве аргумента и печатает результат на терминале (в случае, если объект был найден или нет на изображении).Запустите код OpenCV на облачной машине [Azure]

Итак, мне нужно называть этот исполняемый файл из моего ноутбука другим кодом на C++. В принципе, мне нужно запустить программу на моем ноутбуке, которая вызывает другую на Azure, передавая изображение в качестве аргумента. У меня нет большого опыта в этой области, поэтому вся помощь приветствуется. Я слышал, что мне нужно сделать это с помощью Python, так как это будет? И почему ?

Спасибо!

+0

По крайней мере, вы можете прокомментировать ответ ... –

ответ

1

Вы можете сделать это на любом языке, который вам нужен. Ответ на то, чтобы сделать 2 машины «разговорами» через Интернет, всегда сокеты, не может быть сделано иначе.

Если бы я тебя, я буду делать это таким образом:

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

Другим способом может быть то, что серверное программное обеспечение запрашивает базу данных или ищет каталог, если есть новые изображения каждые X секунд, и ваше клиентское программное обеспечение будет загружать в этот каталог изображение vía ftp или scp (более безопасное) или что-то еще , Этот путь будет более сложным для получения результатов.

Теперь вам нужно знать о языковых программах, чтобы развить это.

+0

Спасибо за ваш ответ. Хорошо, я попытаюсь использовать сокеты, но что мне делать, чтобы общаться с Azure с помощью портов? Что-то связано с конечными точками? Как было сказано ранее, у меня нет большого опыта в этом, поэтому любая помощь или указания для этого объекта были бы хороши. И еще одна вещь. Могу ли я сделать это только в C++ и порты/проблемы связи только в сетевой конфигурации? – Thigoo

+0

Вы можете сделать это на любом сервере, виртуальном сервере, выделенном сервере, на любом сервере, пока вы можете запускать собственное программное обеспечение. Просто вам нужно создать сервер на любом языке (C++ - хороший выбор из-за его производительности, но плохой выбор из-за вашего отсутствия знаний, потому что это один из самых сложных языков программирования в настоящее время). Вы должны самостоятельно кодовое кодирование или много искать для фреймворков, которые это делают, но, несмотря на то, что вы ищете фреймворки, которые вы должны использовать для их реализации, поэтому я буду сам его кодировать, потому что сервер действительно прост в программировании. Кроме того, я выберу node.js ... –

+0

... из-за его универсальности. Вы можете редактировать сценарии «на лету» без необходимости их перекомпилировать, а знания о переменных легче понять, поэтому ваш код будет менее вероятным. В Azure конечные точки просто открывают порты. Из-за безопасности, когда программа прослушивает порт на сервере Azure, к нему нельзя получить доступ извне, если вы не открываете порт, но вам нужно закодировать весь «клиентский сервер <->». Если у вас нет опыта, это будет нелегко, и вы также не сможете полностью завершить свою работу в течение интенсивной недели работы, вам придется ... –

Смежные вопросы