48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
|
#include <string>
|
|||
|
#include <vector>
|
|||
|
|
|||
|
#include "infer.hpp"
|
|||
|
|
|||
|
int main(int argc, char *argv[]) {
|
|||
|
// Проверяет количество аргументов
|
|||
|
if (argc != 3) {
|
|||
|
std::cerr << "Использование: " << argv[0] << " <model_path> <image_path>" << std::endl;
|
|||
|
return EXIT_FAILURE;
|
|||
|
}
|
|||
|
|
|||
|
// Получает пути к модели и изображению из аргументов программы
|
|||
|
const std::string model_path = argv[1];
|
|||
|
const std::string image_path = argv[2];
|
|||
|
|
|||
|
// Проверяем наличие OpenVINO попыткой вывести версию
|
|||
|
try {
|
|||
|
std::cout << ov::get_openvino_version() << std::endl;
|
|||
|
} catch (const std::exception &ex) {
|
|||
|
std::cerr << ex.what() << std::endl;
|
|||
|
return EXIT_FAILURE;
|
|||
|
}
|
|||
|
|
|||
|
// Читает изображение из файла
|
|||
|
cv::Mat image = cv::imread(image_path);
|
|||
|
if (image.empty()) {
|
|||
|
std::cerr << "ОШИБКА: Не удалось загрузить изображение" << std::endl;
|
|||
|
return EXIT_FAILURE;
|
|||
|
}
|
|||
|
|
|||
|
// Определение значений
|
|||
|
const float probability = 0.5;
|
|||
|
const float NMS = 0.5;
|
|||
|
|
|||
|
// Создание объекта класса распознования
|
|||
|
Inf *i;
|
|||
|
i = new Inf(model_path, cv::Size(640, 640), probability, NMS);
|
|||
|
|
|||
|
// Запуск распознования объектов
|
|||
|
i->inference(image);
|
|||
|
|
|||
|
// Запись результата в файл
|
|||
|
cv::imwrite("/tmp/cpp_openvino_result.bmp", image);
|
|||
|
|
|||
|
return EXIT_SUCCESS;
|
|||
|
}
|