1

Я пытаюсь установить некоторые важные программы, связанные с моей работой (в Windows 10), но когда я пытаюсь запустить его, появляется сообщение об отсутствии opencv_core245.dll и opencv_ml245.dll.

Я попробовал поискать в Google, но единственными результатами, которые я получил, были хитрые сайты и некоторые вирусы.

Как я могу исправить эту проблему?

РЕДАКТИРОВАТЬ: Программное обеспечение, которое я пытаюсь запустить, является приложением TITARL, найденным здесь

1 ответ1

0

Появляется ошибка о том, что opencv_core245.dll и opencv_ml245.dll отсутствуют.

Они связаны с библиотекой OpenCV (Open Source Computer Vision). Вы можете попробовать установить это в первую очередь.

Замечания по установке

  • Средство извлечения OpenCV для Windows (в настоящее время упакованное как .exe) запросит путь для извлечения при запуске. Папка opencv создается автоматически в этом месте.

  • В широком смысле, не должно иметь значения, где вы решили извлечь эти файлы. Тем не менее, ваша программа может иметь определенные требования (которые вам нужно будет проверить) в отношении размещения отсутствующих DLL-файлов.

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

  • OpenCV поставляется с несколькими builds . Вы должны сопоставить "битность" выбранных вами библиотек .dll с "битностью" вашей программы (то есть 32-битной или 64-битной).

TITARL

Для TITARL отсутствующие .dll должны быть помещены в ту же папку, что и TITARL.exe:

Размещение OpenCV DLL - Скриншот

opencv_core245.dll и opencv_ml245.dll

К сожалению, OpenCV 2.4.5 (и эти .dll) больше не кажутся легко доступными как предварительно скомпилированные двоичные файлы. Однако библиотека OpenCV 2.4.5 по-прежнему доступна в виде исходного кода из официального репозитория GitHub. Недостающие .dll должны быть скомпилированы из этого исходного кода перед запуском программы.

Если вы доверяете незнакомцам в Интернете, я собрал для вас 64-битные версии этих двух .dll . Похоже, они правильно работали с example_learning.bat предоставленным TITARL. Тем не менее, они не были тщательно проверены каким-либо образом.

Предостережения

  • Эти .dll были созданы с помощью Visual Studio 14 (2015) в Windows 7 без поддержки Python.

  • Поддержка FFmpeg и DirectShow была включена в параметры сборки, но напрямую не тестировалась.

  • Никаких других .dll не было построено, кроме opencv_core245.dll и opencv_ml245.dll .

Если вы решите попробовать их и столкнетесь с проблемами (например, необъяснимым поведением или другими проблемами), вам, возможно, просто придется скомпилировать их самостоятельно. Я даю обзор шагов, которые я предпринял ниже.


Руководство по миникомпиляции для Visual Studio

Основываясь на этом общем руководстве по компиляции OpenCV 3 с Visual Studio, которое вы упомянули в комментариях, следующие шаги должны позволить вам получить хотя бы минимально работающую установку TITARL путем создания необходимых отсутствующих DLL-файлов.

подготовка

  1. Загрузите и установите Microsoft Visual Studio Community Edition (бесплатно). Они также имеют более старые версии , в зависимости от ваших потребностей. Имейте в виду, что для старых версий в настоящее время требуется доступ к бесплатной учетной записи Dev Essentials.

  2. Скачайте и установите CMake. CMake - это утилита, которая помогает компиляции пройти немного проще и OpenCV 2.4.5. имеет необходимые файлы для работы с ним.

  3. Загрузите и извлеките исходный код, связанный ранее (если вы еще этого не сделали). Где вы извлекаете исходный код - ваш выбор.

  4. Предполагая, что CMake установлен, откройте графический интерфейс (например, с помощью значка на рабочем столе).

  5. Вверху главного окна введите путь к исходному коду в первом поле. В дополнительном поле чуть ниже, добавьте путь, где вы хотели бы хранить файлы, связанные с компиляцией (расположение этого второго пути на ваш выбор). На всех этих этапах я буду использовать папку с именем build , расположенную в том же каталоге, что и исходный код:

    Каталог сборки CMake/OpenCV - Скриншот

  6. После ввода этих путей нажмите кнопку « Настроить» в нижней части главного окна. Новое диалоговое окно должно появиться.

  7. В этом диалоговом окне выберите правильный "генератор" для ваших .dll. Для Visual Studio это будет имя издания, за которым следует либо ничто (которое создает 32-разрядные двоичные файлы), либо Win64 (которое строит 64-разрядные двоичные файлы). TITARL - это 64-битная программа (TITARL 1.7 [Win x64 - Public release]), поэтому вам нужно будет выбрать, например, Visual Studio 14 2015 Win64 или Visual Studio 15 2017 Win64 для создания соответствующих 64-битных .dll:

    CMake Generator - Visual Studio 14 2015 Win64 - Скриншот CMake Generator - Visual Studio 15 2017 Win64 - Скриншот

  8. Нажмите Finish, чтобы закрыть диалоговое окно. CMake автоматически начнет обработку исходного кода OpenCV 2.4.5. В главном окне кнопка « Настройка» изменится на кнопку « Стоп» , а кнопки « Генерирование ...» и « Открыть проект ...» рядом с ней будут выделены серым цветом. Обратите внимание, что эта первоначальная обработка может занять несколько минут.

  9. Как только эта обработка будет завершена, верхняя панель в главном окне CMake будет отображать большое количество информации красным цветом (это новые обнаруженные опции). Нижняя панель должна гласить "Конфигурирование выполнено":

    Начальная обработка CMake завершена

  10. Найдите параметры сборки, помеченные как BUILD_opencv_* (где * - это имя, например apps). Все они должны быть в одном блоке. Снимите флажок рядом с каждым элементом, за исключением BUILD_opencv_core и BUILD_opencv_ml . Нажмите Настроить снова. После того, как обработка завершится еще раз, нажмите Generate .... После завершения главное окно CMake должно выглядеть примерно так:

    CMake - готовое решение для Visual Studio Edit - скриншот

Исправление OpenCV 2.4.5

Обычно на этом этапе все будет готово для компиляции недостающих .dll. Тем не менее, OpenCV 2.4.5. имеет общую проблему с Visual Studio 12+, где он генерирует большое количество "max" : is not a member of "std" ошибок "std" , которые препятствуют созданию необходимых DLL-файлов.

К счастью, как подробно описано в ответе на этот вопрос StackOverflow, компиляция может быть достигнута с некоторыми незначительными изменениями исходного кода.

Чтобы исправить эту проблему:

  1. Найдите решение OpenCV.sln сгенерированное CMake ранее (например, в C:\path\to\opencv-2.4.5\build).

  2. Дважды щелкните файл, чтобы открыть его в Visual Studio. Поскольку это, вероятно, первый раз, когда вы открыли это решение, Visual Studio может потребоваться минута или две, чтобы полностью проанализировать его. Посмотрите на синюю полосу активности в нижней части главного окна Visual Studio и подождите, пока она не скажет "Готово", прежде чем продолжить.

  3. Когда Visual Studio установится, нажмите Ctrl + H, чтобы открыть диалоговое окно « Найти и заменить », а затем выполните следующие действия:

    • В разделе Find what: введите #include \<string\> .
    • В разделе Replace with: введите #include <algorithm>\n#include <string> .
    • Установите Look in на « Entire Solution (при необходимости).
    • Под Find options убедитесь, что помечено Use Regular Expressions .
    • Нажмите Заменить все, когда закончите.

      Диалоговое окно замены решения Visual Studio - снимок экрана

составление

После того, как все вышеперечисленные шаги выполнены, вы должны быть готовы к компиляции с CMake. Откройте командное окно в вашем каталоге build (например, C:\path\to\opencv-2.4.5\build) и введите, например:

C:\path\to\cmake.exe --build . --config Release --target INSTALL

Через короткое время (до 15 минут) компиляция должна быть завершена, а недостающие .dll должны быть доступны в папке install\bin каталога build (например, C:\path\to\opencv-2.4.5\build\install\bin). Как отмечалось ранее, .dll в этой папке должны быть помещены в ту же папку, что и TITARL.exe .


Главные примечания

  • Выполнив описанные выше шаги, я не столкнулся с серьезными ошибками, кроме необходимого исправления кода в Visual Studio. Однако я не пытался собрать всю библиотеку.

  • Не каждый шаг, представленный здесь, точно отражает шаги, указанные в ссылках руководства. Вы можете обратиться к этим ссылкам для получения дополнительной информации.

Visual Studio Notes

  • Visual Studio может быть большой установкой и может нуждаться в самостоятельной настройке. Поэтому этап подготовки 1 может занять больше времени, чем вы думаете.

  • Если вы планируете возиться с поддержкой Python в OpenCV, возможно, потребуется установить Visual Studio с Python Tools for Visual Studio вместе с его поддержкой Visual C++ .

  • Желтые предупреждающие сообщения во время компиляции часто можно игнорировать. Красные сообщения об ошибках, с другой стороны, указывают на проблемы, которые приведут к сбою сборки (т. Е. Не будут создаваться DLL-файлы). Однако это не то же самое, что потенциально "безопасные" красные ошибки, которые CMake генерирует ниже.

CMake Notes

  • CMake использует / не \ для путей Windows в своем интерфейсе GUI. Тем не менее, вставленные пути должны иметь любые \ переключаться на / автоматически.

  • Если вы не хотите вводить полный путь к cmake.exe на последнем этапе компиляции, выберите опцию добавления CMake в PATH во время его установки.

  • Опция для сборки .dll с поддержкой Python в CMake требует шагов, которые здесь не перечислены.

  • Подготовка Шаг 7 может привести к созданию неправильных двоичных файлов, если вы выберете неправильный генератор (то есть 32-битные .dll не будут работать с 64-битной программой). Однако, оставив переключатель в качестве параметра Use default native compilers будет в порядке.

  • Если вы допустили какие-либо ошибки в CMake и т.д., Просто удалите папку build и начните заново с шага подготовки 4.

  • В CMake с приведенными шагами красные "ошибки" в интерфейсе, похоже, не вызывали серьезных проблем. Тем не менее, вероятно, стоит вообще отметить любую ошибку или предупреждение, с которым вы столкнулись.

  • Если есть какие-либо серьезные проблемы, настройка не будет завершена, и будет записан журнал ошибок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .