Форум программистов, компьютерный форум, киберфорум
C++: OpenCV
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 12

OpenCV на Qt

09.12.2017, 21:50. Показов 3127. Ответов 37

Студворк — интернет-сервис помощи студентам
http://hryu.livejournal.com/151430.html делал по этой инструкции
При компиляции выдает такую ошибку что делать? Пробовал разные версии OpenCV
Миниатюры
OpenCV на Qt  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.12.2017, 21:50
Ответы с готовыми решениями:

opencv
добрый день, хотел бы узнать кто работал с opencv2 пытаюсь подключить ее в visual c++ и откомпилировать sample файл, подключал по...

Qt + OpenCV
Отпишитесь кто-нибуль, кто работал с Qt & OpenCV одновременно плиз... Сделал всё по тутору:...

OpenCV
Поставил OpenCV на Ubuntu по qt, компилю простую прогу запускается, а когда жму кнопку после которой будет работать opencv код выводит...

37
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 12
12.12.2017, 23:48  [ТС]
Студворк — интернет-сервис помощи студентам
Я кидал скрин что он мне пишет не найдена ссылка какая то и так для всех функций библиотеки
0
Заблокирован
12.12.2017, 23:52
Цитата Сообщение от maxim67899 Посмотреть сообщение
Я кидал скрин что он мне пишет не найдена ссылка какая то и так для всех функций библиотеки
запусти qmake и пересобери проект
QtCreator->Сборка->Запустить qmake. Потом "Пересобрать всё"
0
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 12
13.12.2017, 10:51  [ТС]
Не помогло
0
Заблокирован
13.12.2017, 12:27
Цитата Сообщение от maxim67899 Посмотреть сообщение
Не помогло
Ты установил OpenCV, коррекно прописал пути к библиотеке и папке инклюдов в PRO файле, запустил qmake и у тебя всё равно не распознается названия функций? Ну тогда тебе можно только посочувствовать

Какой компилятор используешь? Под виндой используй студийный компилятор, сколько раз говорить одно и то же? С minGW нахватаешь и не таких проблем, особенно при сборке OpenCV... Что за undefined reference? Это типа error C3861: 'тра ля ля': identifier not found ? Если ошибка на этапе компиляции - значит ты пути к инклюдам не прописал или прописал не корректно, если на этапе линковки - значит ты библиотеку криво подключил.
0
Заблокирован
13.12.2017, 13:26
вот архив вместе со всем необходимым (кроме картинки для распознавания, сам её уже ищи), да, и для запуска не забудь копировать из CV_Test/OpenCV/bin DLL-ки в папку с бинарём
Вложения
Тип файла: rar CV_Test.part01.rar (10.00 Мб, 7 просмотров)
Тип файла: rar CV_Test.part02.rar (10.00 Мб, 6 просмотров)
Тип файла: rar CV_Test.part03.rar (6.77 Мб, 6 просмотров)
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 00:40
Цитата Сообщение от Digital_Cry Посмотреть сообщение
вот архив вместе со всем необходимым
Может скажите в чем проблема - точнее как ее устранить. На VS2010 в проекте..MyOpenCV Image.rar выдает ошибку tbb..файл не найден. Я его скачал закинуть с exe файлом и хрен.
0
Заблокирован
16.12.2017, 08:43
Цитата Сообщение от n971030 Посмотреть сообщение
точнее как ее устранить
Если честно, я уже устал всем демо проекты лепить Так что давай разбираться.
Что значит выдаёт ошибку tbb не найден, когда выдаёт? во время билда? Тогда текст ошибки в студию. Просто, при запуске бинаря из експлорера? Значит ты собрал OpenCV с флагом TBB, а TBB криво поставил или качнул TBB не под тот компилятор. Что конкретно тебе пишут?

OpenCV отсюда брал уже собранный или сам собирал всё таки? https://opencv.org/releases.html
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 12:03
OpenCV загрузил с этого сайта: https://opencv.org/releases.html

Скрины:



Код первого проекта: (debag) релиз не идет видемо ошибку допустил при настройке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// MyOpenCV.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
//#include <Windows.h>
//#include <opencv\cv.h>
//#include <opencv\cv.hpp>
//#include <opencv\cvaux.h>
//#include <opencv\cvwimage.h>
//#include <opencv\cxcore.h>
#include <opencv\cxcore.hpp>
//#include <opencv\cxeigen.hpp>
//#include <opencv\cxmisc.h>
#include <opencv\highgui.h>
#include <opencv\ml.h>
#include <opencv\cvaux.h>
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
     IplImage* img =  cvLoadImage("C:/TAIS/FindingContours.png");
 
    //show the original image
    cvNamedWindow("Raw");
    cvShowImage("Raw",img);
 
    //converting the original image into grayscale
    IplImage* imgGrayScale = cvCreateImage(cvGetSize(img), 8, 1);
    cvCvtColor(img,imgGrayScale,CV_BGR2GRAY);
 
    //thresholding the grayscale image to get better results
    cvThreshold(imgGrayScale,imgGrayScale,128,255,CV_THRESH_BINARY);
 
    CvSeq* contours;  //hold the pointer to a contour in the memory block
    CvSeq* result;   //hold sequence of points of a contour
    CvMemStorage *storage = cvCreateMemStorage(0); //storage area for all contours
 
    //finding all contours in the image
    cvFindContours(imgGrayScale, storage, &contours, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));
 
    //iterating through each contour
    while(contours)
    {
         //obtain a sequence of points of contour, pointed by the variable 'contour'
         result = cvApproxPoly(contours, sizeof(CvContour), storage, CV_POLY_APPROX_DP, cvContourPerimeter(contours)*0.02, 0);
 
         //if there are 3  vertices  in the contour(It should be a triangle)
        if(result->total==3 )
         {
             //iterating through each point
             CvPoint *pt[3];
             for(int i=0;i<3;i++){
                 pt[i] = (CvPoint*)cvGetSeqElem(result, i);
             }
 
             //drawing lines around the triangle
             cvLine(img, *pt[0], *pt[1], cvScalar(255,0,0),4);
             cvLine(img, *pt[1], *pt[2], cvScalar(255,0,0),4);
             cvLine(img, *pt[2], *pt[0], cvScalar(255,0,0),4);
 
         }
 
          //if there are 4 vertices in the contour(It should be a quadrilateral)
         else if(result->total==4 )
         {
             //iterating through each point
             CvPoint *pt[4];
             for(int i=0;i<4;i++){
                 pt[i] = (CvPoint*)cvGetSeqElem(result, i);
             }
 
             //drawing lines around the quadrilateral
             cvLine(img, *pt[0], *pt[1], cvScalar(0,255,0),4);
             cvLine(img, *pt[1], *pt[2], cvScalar(0,255,0),4);
             cvLine(img, *pt[2], *pt[3], cvScalar(0,255,0),4);
             cvLine(img, *pt[3], *pt[0], cvScalar(0,255,0),4);
         }
 
        //if there are 7  vertices  in the contour(It should be a heptagon)
         else if(result->total ==7  )
         {
             //iterating through each point
             CvPoint *pt[7];
             for(int i=0;i<7;i++){
                 pt[i] = (CvPoint*)cvGetSeqElem(result, i);
             }
 
             //drawing lines around the heptagon
             cvLine(img, *pt[0], *pt[1], cvScalar(0,0,255),4);
             cvLine(img, *pt[1], *pt[2], cvScalar(0,0,255),4);
             cvLine(img, *pt[2], *pt[3], cvScalar(0,0,255),4);
             cvLine(img, *pt[3], *pt[4], cvScalar(0,0,255),4);
             cvLine(img, *pt[4], *pt[5], cvScalar(0,0,255),4);
             cvLine(img, *pt[5], *pt[6], cvScalar(0,0,255),4);
             cvLine(img, *pt[6], *pt[0], cvScalar(0,0,255),4);
         }
 
          //obtain the next contour
         contours = contours->h_next;
    }
 
    //show the image in which identified shapes are marked
    cvNamedWindow("Tracked");
    cvShowImage("Tracked",img);
 
    cvWaitKey(0); //wait for a key press
 
    //cleaning up
    cvDestroyAllWindows();
    cvReleaseMemStorage(&storage);
    cvReleaseImage(&img);
    cvReleaseImage(&imgGrayScale);
}
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 12:05
Вообще очень хотелось спросить, может есть книга по OpenCV для пустых чайников до профессионала? На худой конец, есть хоть какие то книги на русском?
0
Заблокирован
16.12.2017, 12:08
n971030, хрен знает, почему у тебя TBB не находит, ты OpenCV готовый скачал, собранный? Под VisualStudio 2015?
Попробуй перенеси свой проект куда-нибуть на диск C, судя по всему у тебя ещё и русские буквы в путях до проекта...

Цитата Сообщение от n971030 Посмотреть сообщение
может есть книга по OpenCV для пустых чайников до профессионала?
Не знаю, я предпочитаю свои собственные системы компьютерного зрения, а не этот ширпотреб, но ты всегда сможешь найти материалы, загуглив фразу "opencv для чайников"
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 12:14
Цитата Сообщение от Digital_Cry Посмотреть сообщение
я предпочитаю свои собственные системы компьютерного зрения,
А что вы имеете в веду?
0
Заблокирован
16.12.2017, 12:21
Цитата Сообщение от n971030 Посмотреть сообщение
А что вы имеете в веду?
Свои собственные исследования и разработки в области True AI
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 15:02
Цитата Сообщение от Digital_Cry Посмотреть сообщение
собственные исследования
Вы не знаете способ как сравнить 2 изображения и получить результат в виде процентной похожести? Просто уже даже больше наверно года ищу способ по обработке видео с видеорегистратора.

Добавлено через 30 минут
Что интересного вот на этом сайте человек делал датчик движения на OpenCV.
https://habrahabr.ru/company/avi/blog/200804/

Добавлено через 7 минут
Я так понимаю для реализации моей программы потребуется выполнить такие действия.

1 - Из файла видео выдернуть кадр и положить его в IplImage* image
2 - Вывести изображение на экран - (типа чтобы видеть чего там происходит) мне кажется даже без этого можно.
C++
1
2
3
cvNamedWindow("image window", 1); 
image = cvQueryFrame( capture ); 
cvShowImage("image window", image);
3 - Определить те части где нужно указать движения. (указываем регион)
C++
1
cvCircle( dst, center, cvRound(magnitude*1.2), color, 3, CV_AA, 0 );
4 - получаем кусок региона.

Добавлено через 1 минуту
Если вам нужно решить задачу именно с помощью openCV, то получить доступ к локальному файлу можно так:
C++
1
cap = cv2.VideoCapture('test.avi')
0
Заблокирован
16.12.2017, 15:04
Цитата Сообщение от n971030 Посмотреть сообщение
Вы не знаете способ как сравнить 2 изображения и получить результат в виде процентной похожести?
Конечно знаю, смотря что тебя конкертно интересует, ведь если сравнивать два изображения без распознавания какого-либо смысла на них, то их можно сравнить только по пиксельно и вычислить схожесть по суммарному расхождению цветов.

Цитата Сообщение от n971030 Посмотреть сообщение
Что интересного вот на этом сайте человек делал датчик движения на OpenCV.
я когда-то делал демку 3D point трекреа, что бы за выбранной точкой на 3D объекте в видео потоке следить, но это всё так, детский сад, я сейчас больше звуком занимаюсь, к зрению вернусь позже
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 16:07
Цитата Сообщение от Digital_Cry Посмотреть сообщение
конкертно интересует
C++
1
cvCap = cvCreateFileCapture(FileVideoAVI);
Она почему та не открывает AVI файл от видео регистратора, может хитрость есть какая кстати проблема не только у меня такая.

Добавлено через 4 минуты
Цитата Сообщение от n971030 Посмотреть сообщение
Она почему та не открывает
О вопрос решил - оказалось что не хватало кодека поставить klite maega и все вроде адрес получил.

Добавлено через 19 минут
Кстати очередной вопрос развития темы про просмотр и анализ видео с видеорегистраторов и камер наблюдения. Вот есть видео но как его просматривать не в реальном времени а с максимальной скоростью оборудования?

Рабочий код программы: (воспроизводит avi):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  // MyOpenCV.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <opencv\cxcore.hpp>
#include <opencv\highgui.h>
#include <opencv\ml.h>
#include <opencv\cvaux.h>
#include <cv.h>
#include <stdlib.h>
#include <stdio.h>
 
 
 
int main( int argc, char** argv ) 
{
    // Структура для работы с видео
    CvCapture *cvCap; 
 
    // Тут храним кадры
    IplImage* image = 0;
 
    // окно для отображения картинки
    //cvNamedWindow("CvForm",CV_WINDOW_AUTOSIZE);
 
    // Определим имя файла avi в найшей папке
    char * FileVideoAVI = "1.AVI";
 
    // http://blog.vidikon.com/?paged=17 тут есть подробно, 
    // Создаёт и инициализирует структуру CvCapture для чтения
    // видео-потока из файла. (Получаем свойства видео)
    cvCap = cvCreateFileCapture(FileVideoAVI);
 
    if(cvCap == false)  
        return 0;
 
 
 
    // Получаем последовательно все кадры 
    while(1)
    {
        // получаем следующий кадр, а если кадров нет то выйти (ну или типа конец файла)
        image = cvQueryFrame(cvCap); 
        if( !image ) {
            break;
        }
 
        // Выводим изображение на экран
        cvShowImage("CvForm", image);
        cvWaitKey(1);
 
    }
 
    return 0;
}
0
Заблокирован
16.12.2017, 18:09
Цитата Сообщение от n971030 Посмотреть сообщение
но как его просматривать не в реальном времени а с максимальной скоростью оборудования?
ват?
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
16.12.2017, 18:28
Цитата Сообщение от Digital_Cry Посмотреть сообщение
ват?
Я тут посмотрел на загрузку ЦП и загрузка ЦП составляет 0% возникает вопрос, как листать кадры с максимальной скоростью? Также что то меня заклинело как все же реализовать детекцию движения?
0
Заблокирован
17.12.2017, 00:36
В общем тебе этого ничего не надо, а если надо чёго-то конкретно - купи, но ты ни разу ни инженер и не исследователь, по этому сэ ла ви.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2017, 00:36
Помогаю со студенческими работами здесь

OpenCV
уважаемые участники, я чайник по ОpenCV. помогите?! с чего начать и как обучаться, чему стоит а чему нет

Qt и OpenCV
После добавления в файл проекта следующих строк LIBS += -L&quot;C:\\Program Files\\opencv\\build\\x86\\vc10\\lib\\&quot; -lopencv_core249...

OpenCV
Привет, подскажите!Как установить opencv на code::blocks?

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

OpenCV
Доброе время суток друзья! Необходимо соорудить программу для детектирования ответов со сканированных изображений анкет (количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru