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;
|
||
}
|