snipplets.dev/projects/OpenVINO/C++/i.cpp

48 lines
1.5 KiB
C++
Raw Permalink Normal View History

2024-08-24 15:24:01 +03:00
#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;
}