Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB

Как установить OpenCV на Qt под Windows

OpenCV, Qt

Введение
Хотел бы выразить благодарность Евгению за этот замечательный сайт и за то что он помогает начинающим программистом и не только развиваться. Хотел бы попросить и других пользователей внести свой вклад в развития данного проекта) Спасибо всем)
Ниже описанные действие были сделаны мной когда я устанавливал для себя OpenCV . Хотелось бы подчеркнуть что в интернете нет ПОЛНОЙ статьи на эту тему. Так как когда я это устанавливал выходили ошибки а ответы приходилось искать то в рунете то у американцев то черти знает у кого.



Лан. Поехали)

Для установки OpenCV на Qt под OS Windows нам нужно.

0. Скачать OpenCV с официального сайта. Достаем из архива файлы.
https://opencv.org/

1. Скачать CMake с официального сайта. Достаем из архива файлы.
https://cmake.org/


2. Сам Qt ( на данный момент у меня стоит 5.10.1 v)
3. На Диске C:\ или на диске D:\ создает папку OpenCV
3.0 В этой папке(OpenCV) скидываем папку, которую мы достали из архива OpenCV.zip.
3.1 В этой же папке (OpenCV) создаем папке OpneCV_bin
4. Запускаем СMake

ВНИМАНИЕ!!!
Обратите внимание на ссылку
C:/OpenCV/opencv/sources(Это в папке которую мы разархивировали после того как скачали в ней есть эта папка SOURCES!)
C:/OpenCV/opencv_bin(А это пустая ! папка которую мы создали)

5. ВАЖНО!!!
В этом списке снимите флажок ENABLE_PRECOMPILED_HEADERS, WHIT_IPP, WHIT_CUDA, WHIT_TBB.
В этом списке постьвте  флажок WHIT_QT, WHIT_OPENGL  поменять на Release
6. Нажимаем на Configuer там будет проходить процесс установки и он остановится. Некоторые поля будут красными их нужно поменять в ручную.

Установите QT_MAKE_EXECUTABLE в D: \ Qt \ 5.9 \ mingw53_32 \ bin \ qmake.exe
 Установите Qt5Concurrent_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Concurrent
 Установите Qt5Core_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Core
 Установите Qt5Gui_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Gui
 Установите Qt5Test_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Test
 Установите Qt5Widgets_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Widgets
 Установите Qt5OpenGL_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5OpenGL
 Установите CMAKE_BUILD_TYPE для Release или RelWithDebInfo

потом занова нажимает на Конфиг а после окончания на Генерацию( Generate). И все, завкрываем СMake.
7. Открываем командную строку и заходим в папку C:\OpenCV\opencv_bin (Это в моем случае) и в командной строке набираем

 cd с: \OpenCV\opencv_bin  
 mingw32-make -j 8
 mingw32-make install

Дорогие друзья Установить OpenCV на Qt под MacOS можно тоже также....но там нужно использовать команду sudo make
8. Потом добавляем PATH

Заходим в свойства МОЙ КОМПЬЮТЕР

Все. Мы установили все)) Теперь нужно открыть проект в Qt и добавить в проект следующие ссылки

Пример кода внизу

# ------------------------------------------------- 
# 
# Проект, созданный QtCreator 2017-03-05T12: 30: 06 
# 
# --------------------------------- ----------------

QT        + =  core  gui

moreThan ( QT_MAJOR_VERSION ,  4 ) :  QT  + =  виджеты

TARGET  =  opencvtest 
TEMPLATE  =  приложение

# Следующий параметр определяет, что ваш компилятор генерирует предупреждения, если вы используете 
# любую функцию Qt, которая помечается как устаревшая (точные предупреждения 
# зависят от вашего компилятора). Пожалуйста, ознакомьтесь с документацией 
# устаревшего API, чтобы узнать, как отменить его код. 
ОПРЕДЕЛЕНИЯ  + =  QT_DEPRECATED_WARNINGS

# Вы также можете сделать код не скомпилированным, если вы используете устаревшие API. 
# Чтобы сделать это, раскомментируйте следующую строку. 
# Вы также можете отключить устаревшие API только до определенной версии Qt. 
#DEFINES + = QT_DISABLE_DEPRECATED_BEFORE = 0x060000 # отключает все API, устаревшие до Qt 6.0.0


ИСТОЧНИКИ  + =  основной . cpp \
         mainwindow . CPP

HEADERS   + =  mainwindow . час

FORMS     + =  mainwindow . щ

INCLUDEPATH  + =  D : \ opencv \ build \ include

LIBS  + =  D : \ opencv - build \ bin \ libopencv_core320 . dll 
LIBS  + =  D : \ opencv - build \ bin \ libopencv_highgui320 . dll 
LIBS  \ libopencv_imgproc320 . dll LIBS + = D : \ opencv - + =  D : \ opencv - build \ bin \ libopencv_imgcodecs320 . dll 
LIBS  + =  D : \ opencv - build \ bin
   build \ bin \ libopencv_features2d320 . dll 
LIBS  + =  D : \ opencv - build \ bin \ libopencv_calib3d320 . длл

# более правильный вариант, как set includepath и libs для mingw 
# добавить системную переменную: OPENCV_SDK_DIR = D: / opencv / build 
# читать http: //doc.qt.io/qt-5/qmake-variable-reference.html#libs

#INCLUDEPATH + = $$ (OPENCV_SDK_DIR) / включить

#LIBS + = -L $$ (OPENCV_SDK_DIR) / x86 / mingw / lib \
# -lopencv_core320 \ 
# -lopencv_highgui320 \ 
# -lopencv_imgcodecs320 \ 
# -lopencv_imgproc320 \ 
# -lopencv_features2d320 \ 
# -lopencv_calib3d320
и измените mainwindow.cpp следующим образом:

#include  "mainwindow.h"
#include  "ui_mainwindow.h"

#include  <opencv2 / core / core.hpp>
#include  <opencv2 / highgui / highgui.hpp>

MainWindow :: MainWindow ( родитель QWidget  * ) : QMainWindow ( родительский ), ui 
    
     ( новый  Ui :: MainWindow ) 
{ 
    ui -> setupUi ( this );

    // читаем изображение 
    cv :: Mat  image  =  cv :: imread ( "f: //1.jpg" ,  1 ); 
    // создаем окно изображения с именем «My Image» 
    cv :: namedWindow ( «My Image» ); 
    // показать изображение в окне 
    cv :: imshow ( «Мое изображение» ,  изображение ); 
}

MainWindow :: ~ MainWindow () 
{ 
    delete  ui ; 
}

Источник Qt wiki

Но там не все...я проходил эти тропы

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking
W
  • #
  • July 25, 2018, 6:40 p.m.

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

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

T

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

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

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

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

Comments

Only authorized users can post comments.
Please, Log in or Sign up
МБ
April 21, 2019, 9:40 a.m.
Моисей Бушуев

Qt - Test 001. Signals and slots

  • Result:0points,
  • Rating points-10
AA
April 17, 2019, 7:40 p.m.
Anton Ablin

Qt - Test 001. Signals and slots

  • Result:73points,
  • Rating points1
E
April 17, 2019, 6:16 p.m.
Evgeny

Qt - Test 001. Signals and slots

  • Result:100points,
  • Rating points10
Last comments
April 21, 2019, 4:22 p.m.
Евгений Легоцкой

Через метод setIcon table.horizontalHeaderItem(0).setIcon("qrc://path/to/icon.png")
April 21, 2019, 3:48 p.m.
Евгений Легоцкой

Добрый день! Спасибо за комментарий. Там действительно лучше будет сделать с инициализацией по умолчанию.
U
April 18, 2019, 3:37 p.m.
Unreal_man

А как иконку в хедер задать?
u
April 18, 2019, 2:15 a.m.
uaa

доброго времени,большое спасибо за пример для начинающего)при адаптации к своему проекту столкнулся с таким ньансом:в vepolyline.h в 47 строке нужна инициализация по умолчанию: int m_pointF...
E
April 11, 2019, 12:49 p.m.
Evgeny

Спасибо за ответ) У меня компоновщик на нее ругался просто. Оказалось, просто забыл Q_OBJECT в начале класса указать.
Now discuss on the forum
April 24, 2019, 11:22 a.m.
Ruslan Polupan

Согласен. но ситуация не поменялась. Такое чуство что данные не записываются в модель.
April 24, 2019, 6:20 a.m.
Ruslan Polupan

я так понимаю надо инфорация об устройствах.Я бы пробовал так rust@suse:~> lsblk -PNAME="sda" MAJ:MIN="8:0" RM="0" SIZE="111,8G" RO="0" TYPE="disk" MOUNTPOINT=""NAME="sda1" MAJ:MIN="8...
April 21, 2019, 4:16 p.m.
Евгений Легоцкой

Приветствую Нужно сохранять где-то выбранное значение, а потом восстанавливать его. Или использовать QSettings или добавить метод open(), в который передавать начальные значения для того...
R
April 19, 2019, 9:55 a.m.
RED_Spider

мені важко це зараз навіть перевірити, тому що знайшов коміт, це ще було в 2016 році, і цей код не буде працювати коректно зараз, єдине скажу що це були QThread
Join us in social networks

For registered users on the site there is a minimum amount of advertising