Dmti 0 Жалоба Опубликовано October 19, 2014 Давно хотел освоить ещё какую - нибудь среду, и господин Смородов меня убидил. С плюсовым интерфейсом OpenCV у борландовского компилятора большие проблемы были и будут Перешел на Qt. Теперь пытаюсь освоить сразу и Qt и Opencv. Не буду рассказывать свои мучения с установкой и подключением, но вроде всё собирается и компилируется. Правда, получаю черный экран. Дайте направления - в какую сторону копать, где тутА собака порылась. #include <stdio.h> #include <conio.h> #include <windows.h> #include "D:\libForC++\OpenCV2.2\include\opencv2/opencv.hpp" #include <iostream> using namespace cv; using namespace std; int main( ) { //сюда подключаем видео поток Mat image; // Получается видео-поток с камеры VideoCapture cap(-1); if(!cap.isOpened()) // check if we succeeded return -1; //Создаём окно для вывода изображения namedWindow( "Display window", WINDOW_AUTOSIZE ); //Основной бесконечный цикл for(; { cap >> image; imshow( "Display window", image); if(waitKey(0) >= 0) break; } return 0; } Ткните носом, где ошибка пожалуйста. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 19, 2014 waitKey(0); Ждет кнопки бесконечно. Попробуйте так: waitKey(10); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 19, 2014 не знание мат части, не извиняет от ошибок. Я думал 0, это любая клавиша, а 10 с кодом 10. Но всё ровно не помогло. И ещё, как можно проверить image, что находится внутри(что не нули), после выполнения cap >> image; Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 19, 2014 Перевести в серый: cvtColor(img, img, cv::COLOR_BGR2GRAY); и посчитать количество ненулевых пикселей: cv::countNonZero(Img); Вообще, на вскидку, все должно работать. Проверьте чтобы Opencv была скомпилирована с опцией поддержки Qt. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 20, 2014 Устанавливал как написано здесь http://recog.ru/blog/opencv/4.html.Если ещё чего надо, скажите я пока в Qt ноль, и пока ставил, выполнял много непонятных для меня действий. Язык С++ знаю, а среда новая и непонятная. Как проверить правильность Проверьте чтобы Opencv была скомпилирована с опцией поддержки Qt. есть ли какие средства в Qt или надо какие специальные средства ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 20, 2014 Когда собирается OpenCV в CMake устанавливается куча галочек, что нужно, а что на нужно. Там же есть и Qt. По процессу установки вот нашел видео (сам не проверял): 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 20, 2014 Скажите зачем меня заставили поставить "4. Скачиваем CodeBlocks" WITH_QT - галочку поставилWITH_QT_OPENGL - а эту стоку не нашел, хотя тоже было сказано галочку поставить. Дальше сделал один в один, только пути свои прописал. 14. Жмем Configure15. Указываем путь для QT_QMAKE_EXECUTABLE (в моем случае это C:/Qt/2010.05/qt/bin/qmake.exe)Да тут важный момент — НЕ ПЕРЕПУТАЙТЕ файлы qmake.exe (нужен тот, что в папке bin)15.1. Ставим галочку BUILD_EXAMPLES15.2. Устанавливаем значение CMAKE_BUILD_TYPE равным Debug 15.3. Еще раз жмем Configure Ошибки должны исчезнуть и внизу появится надпись Configuring done Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 20, 2014 Codeblocks видимо для GCC. Есть еще одно описание установки: http://www.troyashka.ru/2011/05/qtvs2010opencv.html По нему как то раз устанавливал, все поставилось, хотя было это давно. И еще, в последний раз (установка Qt+vs2010) я ставил по описанию: Печать – QT 4.8.pdf Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 20, 2014 Пробую установить как в видео, использую файлы gcc и g++ из Qt. Qt обновил до версии 5, старый снёс, теперь при работе CMake 3.0.2 получаю ошибку: CMake Error at cmake/OpenCVUtils.cmake:42 (if): if given arguments: "D:/C++/OpenCV/Opencv_Qt" "MATCHES" "^D:/C++/OpenCV/sources" "OR" "D:/C++/OpenCV/Opencv_Qt" "MATCHES" "^D:/C++/OpenCV/Opencv_Qt" Regular expression "^D:/C++/OpenCV/sources" cannot compile Call Stack (most recent call first): CMakeLists.txt:359 (ocv_include_directories) как всё непросто в этой среде, сколько лишних телодвижений. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 20, 2014 Не уверен, но может быть проблема в том, что в строке пути присутствуют ++. Они, возможно, и портят регулярное выражение. Поверьте, с настроенным скриптом cmake, проект в VS создается быстрее чем в билдере. Да, с Qt чудес побольше, я поэтому с ним редко связываюсь. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 20, 2014 Предполагаю что косяк в CMakeLists.txt. Скачал для пробы Opencv 2.2, с указанного в статье места, всё нормально собирается. ХОЧУ Opencv2.4.,. но она не собирается. Зря переставлять начал. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 20, 2014 C GitHub скачивали последнюю? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 20, 2014 скачал с сайта https://github.com, всего один файл, CMakeLists.txt и сборка прошла успешно. Наконец. Пол дня потерял на чепухе. Сегодня доставлю, и попробую, как себя будет вести камера. Завтра отпишусь. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dmti 0 Жалоба Опубликовано October 20, 2014 БОЛЬШОЕ спасибо всё заработало. Теперь можно и начать изучать. Буду делать проект для склада, из двух камер, одна обзорная, другая с хорошим приближением. Одна видит изменение, и говорит где снимать, а другая делает фото, и фиксирует время. Лучший метод изучения это начать что-нибудь делать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано October 20, 2014 а еще для VS можно заюзать Image Watch https://visualstudiogallery.msdn.microsoft.com/e682d542-7ef3-402c-b857-bbfba714f78d но там под vs2012 не знаю есть ли под более старые 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах