W
July 26, 2018, 12:10 a.m.

How to install OpenCV on Qt on Windows

Introduction
I would like to express my gratitude to Evgeny for this wonderful site and for the fact that he helps novice programmers and not only develop. I would like to ask other users to contribute to the development of this project) Thank you all)
The following steps were taken by me when I installed OpenCV for myself. I would like to emphasize that there is no FULL article on this topic on the Internet. Since when I installed it, errors came out and I had to look for answers in Runet, then from the Americans, then the devil knows who.


Lan. Go)

To install OpenCV on Qt under OS Windows, we need.

  1. Download OpenCV from the official site. We get files from the archive.

https://opencv.org/

  1. Download CMake from the official site. We get files from the archive.

https://cmake.org/

  1. Qt itself (at the moment I have 5.10.1 v)
  2. On Drive C:\ or drive D:\ creates a folder OpenCV
    3.0 In this folder (OpenCV) we drop the folder that we got from the OpenCV.zip archive.
    3.1 In the same folder (OpenCV) create a folder OpneCV_bin
  3. Run CMake

ATTENTION!!!
Pay attention to the link
C: / OpenCV / opencv / sources (This is in the folder that we unzipped after we downloaded it has this SOURCES folder!)
C:/OpenCV/opencv_bin (And this is an empty! folder that we created)

  1. IMPORTANT !!!
    In this list, uncheck ENABLE_PRECOMPILED_HEADERS, WHIT_IPP, WHIT_CUDA, WHIT_TBB.
    In this list, put the WHIT_QT flag, change WHIT_OPENGL to Release
  2. Click on Configuer, the installation process will go through there and it will stop. Some fields will be red and need to be changed manually.
  1. Установите QT_MAKE_EXECUTABLE в D: \ Qt \ 5.9 \ mingw53_32 \ bin \ qmake.exe
  2. Установите Qt5Concurrent_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Concurrent
  3. Установите Qt5Core_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Core
  4. Установите Qt5Gui_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Gui
  5. Установите Qt5Test_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Test
  6. Установите Qt5Widgets_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Widgets
  7. Установите Qt5OpenGL_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5OpenGL
  8. Установите CMAKE_BUILD_TYPE для Release или RelWithDebInfo

then clicks on Config again and after the end on Generate. And that's it, close CMake.
7. Open the command line and go to the folder C:\OpenCV\opencv_bin (This is in my case) and on the command line we type

  1. cd с: \OpenCV\opencv_bin
  2. mingw32-make -j 8
  3. mingw32-make install

Dear friends, you can also install OpenCV on Qt under MacOS .... but you need to use the sudo make command there
8. Then add PATH

Go to the properties of MY COMPUTER

All. We have installed everything)) Now you need to open the project in Qt and add the following links to the project

Sample code below

  1. # -------------------------------------------------
  2. #
  3. # Проект, созданный QtCreator 2017-03-05T12: 30: 06
  4. #
  5. # --------------------------------- ----------------
  6.  
  7. QT + = core gui
  8.  
  9. moreThan ( QT_MAJOR_VERSION , 4 ) : QT + = виджеты
  10.  
  11. TARGET = opencvtest
  12. TEMPLATE = приложение
  13.  
  14. # Следующий параметр определяет, что ваш компилятор генерирует предупреждения, если вы используете
  15. # любую функцию Qt, которая помечается как устаревшая (точные предупреждения
  16. # зависят от вашего компилятора). Пожалуйста, ознакомьтесь с документацией
  17. # устаревшего API, чтобы узнать, как отменить его код.
  18. ОПРЕДЕЛЕНИЯ + = QT_DEPRECATED_WARNINGS
  19.  
  20. # Вы также можете сделать код не скомпилированным, если вы используете устаревшие API.
  21. # Чтобы сделать это, раскомментируйте следующую строку.
  22. # Вы также можете отключить устаревшие API только до определенной версии Qt.
  23. #DEFINES + = QT_DISABLE_DEPRECATED_BEFORE = 0x060000 # отключает все API, устаревшие до Qt 6.0.0
  24.  
  25.  
  26. ИСТОЧНИКИ + = основной . cpp \
  27. mainwindow . CPP
  28.  
  29. HEADERS + = mainwindow . час
  30.  
  31. FORMS + = mainwindow . щ
  32.  
  33. INCLUDEPATH + = D : \ opencv \ build \ include
  34.  
  35. LIBS + = D : \ opencv - build \ bin \ libopencv_core320 . dll
  36. LIBS + = D : \ opencv - build \ bin \ libopencv_highgui320 . dll
  37. LIBS \ libopencv_imgproc320 . dll LIBS + = D : \ opencv - + = D : \ opencv - build \ bin \ libopencv_imgcodecs320 . dll
  38. LIBS + = D : \ opencv - build \ bin
  39. build \ bin \ libopencv_features2d320 . dll
  40. LIBS + = D : \ opencv - build \ bin \ libopencv_calib3d320 . длл
  41.  
  42. # более правильный вариант, как set includepath и libs для mingw
  43. # добавить системную переменную: OPENCV_SDK_DIR = D: / opencv / build
  44. # читать http: //doc.qt.io/qt-5/qmake-variable-reference.html#libs
  45.  
  46. #INCLUDEPATH + = $$ (OPENCV_SDK_DIR) / включить
  47.  
  48. #LIBS + = -L $$ (OPENCV_SDK_DIR) / x86 / mingw / lib \
  49. # -lopencv_core320 \
  50. # -lopencv_highgui320 \
  51. # -lopencv_imgcodecs320 \
  52. # -lopencv_imgproc320 \
  53. # -lopencv_features2d320 \
  54. # -lopencv_calib3d320
  55. и измените mainwindow.cpp следующим образом:
  56.  
  57. #include "mainwindow.h"
  58. #include "ui_mainwindow.h"
  59.  
  60. #include <opencv2 / core / core.hpp>
  61. #include <opencv2 / highgui / highgui.hpp>
  62.  
  63. MainWindow :: MainWindow ( родитель QWidget * ) : QMainWindow ( родительский ), ui
  64.  
  65. ( новый Ui :: MainWindow )
  66. {
  67. ui -> setupUi ( this );
  68.  
  69. // читаем изображение
  70. cv :: Mat image = cv :: imread ( "f: //1.jpg" , 1 );
  71. // создаем окно изображения с именем «My Image»
  72. cv :: namedWindow ( «My Image» );
  73. // показать изображение в окне
  74. cv :: imshow ( «Мое изображение» , изображение );
  75. }
  76.  
  77. MainWindow :: ~ MainWindow ()
  78. {
  79. delete ui ;
  80. }

Source Qt wiki

But not everything is there ... I passed these paths

By article asked0question(s)

7

Do you like it? Share on social networks!

W
  • July 26, 2018, 12:40 a.m.

Код снизу чет слетел....не знаю как подправить ....простите ребята(

Evgenii Legotckoi
  • July 26, 2018, 4:32 p.m.

Спасибо за статью. Я поправил все моменты с вёрсткой.

T
  • Feb. 21, 2019, 1:39 a.m.

Спасибо за статью!
У меня возникли проблемы с CMake'ом он постоянно выдавал ошибки, нашел ролик на ютубе где пошагово показано как устанавливать эту либу. Ссылку прилагаю, надеюсь это разрешено..
(https://www.youtube.com/watch?v=7zYJFjqPklI)

Evgenii Legotckoi
  • Feb. 21, 2019, 2:20 a.m.

Не приветствуется спам, подозрительные ссылки, сомнительные предложения и некультурное поведение ))))

В остальном всё модерируется, конечно, но без тирании.

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

v
  • Nov. 19, 2019, 9:19 p.m.
  • (edited)

Ребята а что если папки "Source" в архиве opencv нет? Скачал три варианта библиотеки ни в одном нет этой папки.

v
  • Nov. 19, 2019, 10:26 p.m.
  • (edited)

Разобрался!!! Надо было не архив качать а exe файл и его уже распаковывать в нужную папку)))

IscanderChe
  • May 31, 2020, 7:15 p.m.

Добавлю от себя: на Windows 10 x64 с MinGW 7.3.0 в CMake надо установить флаг OPENCV_ENABLE_ALLOCATOR_STATS=OFF, тогда всё скомпилится нормально.

РР
  • Feb. 16, 2021, 9:03 p.m.

А если на этапе консоли выдаёт ошибки?

Эту если с припиской -j 8

Эту - если простая установка

Можете подсказать, пожалуйста, что делать?

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • AK
    April 1, 2025, 11:41 a.m.
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup