Как правильно собрать opencv в windows, чтобы получить "opencv_createsamples.exe"

Я хочу изучить и использовать классификатор haarcascade с использованием OpenCV для обнаружения объекта по моему выбору. Я поискал в Интернете и обнаружил, что утилита createsamples помогает в создании набора данных для позитивных и негативных изображений. Я знаю, как установить OpenCV на python (pip install opencv-python работает отлично), но, поскольку мне нужно использовать эту утилиту, мне нужно создать OpenCV для моей системы Windows.


Мои попытки установить OpenCV в Windows

Попытка 1: использование MinGW и cmake

  • клонировал последнюю версию OpenCV с помощью git на "C:\OpenCV" из https://github.com/opencv/opencv

  • Установленный cmake

  • создал сборку с использованием cmake на "C:\OpenCV\build" с использованием системы сборки MinGW (64-разрядная) с параметрами по умолчанию
  • запустил mingw32-make
  • запустил mingw32-make install

Он создал каталог установки в "C:\OpenCV\build\install".

но к моему удивлению opencv_createsamples.exe там не было

opencv_visualisation.exe, opencv_annotation.exe, opencv_version.exe и т.д. присутствуют

скриншот сгенерированных установочных файлов

скриншот параметров сборки, выбранных в cmake по умолчанию

Ясно, что BUILD_opencv_apps по умолчанию является true, и были созданы другие приложения, кроме этого.

все еще в исходной папке: createsamples.cpp присутствует в "C:\OpenCV\apps\" вместе с opencv_visualisation.cpp и другими

Попытка 2: сборка Visual Studio 14_15 с официального сайта

к моему удивлению на "C:\OpenCV401\build\x64\vc14\bin" нет opencv_createsamples.exe так же присутствуют и другие файлы

скриншот файлов, присутствующих в сборке

Попытка 3

  • На этот раз я скачал сборку Visual Studio 10 с этой страницы github: https://github.com/abreheret/opencv3.2.0_build
  • здесь на <OpenCV_DIR>/x64/vc10/bin/ присутствуют все замечательные файлы

скриншот файлов, присутствующих в этой сборке


Итак, мой вопрос:

  • Почему эта утилита не была собрана из исходников с использованием MinGW и cmake в моей первой попытке
  • Почему их не включили в официальную сборку
  • Как собрать с помощью MinGW и cmake, чтобы правильно получить эту утилиту (может быть, нужна какая-то конфигурация сборки?)

1) OpenCV — это библиотека, в ней есть примеры и утилиты, но они не собираются по умолчанию, не всем нужны. 2) Их официальная сборка - это библиотека, а не утилиты или приложения. Правильный способ — через cmake, но убедитесь, что вы отметили опцию Build_opencv_apps, а затем в журнале, где указано, что модули OpenCV: там есть строка с надписью Applications: apps. На третий вопрос я позволю кому-то ответить... однако я думаю, что заголовок должен быть ближе к последнему вопросу, чтобы больше людей ответило вам.

api55 22.01.2019 16:05

Значит, это проблема с моей стороны при использовании cmake с mingw, из-за которой я не смог получить эту утилиту?

Kartoos 22.01.2019 17:30

@api55 Я использую параметры по умолчанию в cmake, а BUILD_opencv_apps — это true в конфигурации, а также были созданы другие приложения, такие как opencv_visualisation.exe, которые являются частью приложений, как указано в моем посте, но не opencv_createsamples.exe.

Kartoos 22.01.2019 18:17

Я удалил последний вопрос и изменил заголовок на соответствующий. Теперь я также включил скриншот для параметров, связанных с конфигурацией cmake, при построении вопроса.

Kartoos 22.01.2019 18:19

Когда вы открываете решение Visual Studio, есть ли в нем папка (в обозревателе решений) с надписью «Приложение»? в этой папке есть проект с именем opencv_createsamples?

api55 22.01.2019 20:34

@api55 В исходной папке OpenCV есть C:\\OpenCV\apps, существуют разные папки, такие как traincascade, annotation и т. д., включая createsamplesскриншот для папки <hr> снимок экрана для папки createamples

Kartoos 23.01.2019 08:23

У меня нет визуальной студии, установленной в моей системе 1st, одна использует MinGW и cmake 2nd, одна уже собранная версия (с использованием Visual Studio 14-15), найденная на странице opencv github 3rd, одна сборка какого-то парня (с использованием Visual Studio 10) на github который завершен

Kartoos 23.01.2019 08:29

Я хочу построить как страница github этого парня github.com/abreheret/opencv3.2.0_build

Kartoos 23.01.2019 08:33

На самом деле я получаю тот же результат, что и в этом github... Но я использую visualstudio, не уверен, что отличается... Я могу попробовать позже на другом компьютере с ming

api55 23.01.2019 09:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
9
1 954
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создание образцов было отключено в последней версии OpenCV (4.0 и выше): здесь.

Просто добавьте немного больше к вашему ответу. Причина в этом проблема ... Короче говоря, он использовал C Api, и они не переписывали его на С++.

api55 24.01.2019 07:15

Спасибо за разъяснение, что они удалили эту утилиту

Kartoos 25.01.2019 11:54

Теперь я должен найти другие способы построить набор данных для моего классификатора.

Kartoos 25.01.2019 11:54

Я бы предложил просто собрать стабильную версию 3.4 из репозитория и использовать ее там.

Joel Teply 13.06.2021 18:36

Другие вопросы по теме