Перейти к содержимому
Compvision.ru
Dmti

Получаю с веб камеры черный экран

Recommended Posts

Давно хотел освоить ещё какую - нибудь среду, и господин Смородов меня убидил.

 

С плюсовым интерфейсом 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;
 } 

Ткните носом, где ошибка пожалуйста.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
waitKey(0);

Ждет кнопки бесконечно.

 

Попробуйте так:

waitKey(10);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не знание мат части, не извиняет от ошибок. Я думал 0, это любая клавиша, а 10 с кодом 10. Но всё ровно не помогло.

И ещё, как можно проверить image, что находится внутри(что не нули), после выполнения cap >> image;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Перевести в серый:

cvtColor(img, img, cv::COLOR_BGR2GRAY);

и посчитать количество ненулевых пикселей:

 

cv::countNonZero(Img);

 

Вообще, на вскидку, все должно работать.

 

Проверьте чтобы Opencv была скомпилирована с опцией поддержки Qt.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Устанавливал как написано здесь http://recog.ru/blog/opencv/4.html.Если ещё чего надо, скажите я пока в Qt ноль, и пока ставил, выполнял много непонятных для меня действий. Язык С++ знаю, а среда новая и непонятная. cool.png Как проверить правильность

 

 

Проверьте чтобы Opencv была скомпилирована с опцией поддержки Qt.

 есть ли какие средства в Qt или надо какие специальные средства ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда собирается OpenCV в CMake устанавливается куча галочек, что нужно, а что на нужно.

Там же есть и Qt.

 

post-1-0-58625900-1413795313_thumb.png

 

 

По процессу установки вот нашел видео (сам не проверял): 

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скажите зачем меня заставили поставить "4. Скачиваем CodeBlocks"

 

WITH_QT - галочку поставил
WITH_QT_OPENGL - а эту стоку не нашел, хотя тоже было сказано галочку поставить.

Дальше сделал один в один, только пути свои прописал.

 

 

14. Жмем Configure

15. Указываем путь для QT_QMAKE_EXECUTABLE 
(в моем случае это C:/Qt/2010.05/qt/bin/qmake.exe)
Да тут важный момент — НЕ ПЕРЕПУТАЙТЕ файлы qmake.exe (нужен тот, что в папке bin)

15.1. Ставим галочку BUILD_EXAMPLES
15.2. Устанавливаем значение CMAKE_BUILD_TYPE равным Debug 
15.3. Еще раз жмем Configure 

Ошибки должны исчезнуть и внизу появится надпись Configuring done 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Codeblocks видимо для GCC.

 

Есть еще одно описание установки:

 

 http://www.troyashka.ru/2011/05/qtvs2010opencv.html

 

По нему как то раз устанавливал, все поставилось, хотя было это давно.

 

И еще, в последний раз (установка Qt+vs2010) я ставил по описанию: Печать – QT 4.8.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пробую установить как в видео, использую файлы 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)

как всё непросто в этой среде, сколько лишних телодвижений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не уверен, но может быть проблема в том, что в строке пути присутствуют ++.

Они, возможно, и портят регулярное выражение. 

 

Поверьте, с настроенным скриптом cmake, проект в VS создается быстрее чем в билдере.

 

Да, с Qt чудес побольше, я поэтому с ним редко связываюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Предполагаю что косяк в CMakeLists.txt. Скачал для пробы Opencv 2.2, с указанного в статье места, всё нормально собирается. ХОЧУ  Opencv2.4.,. но она не собирается. Зря переставлять начал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

C GitHub скачивали последнюю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

скачал с сайта https://github.com, всего один файл,  CMakeLists.txt и сборка прошла успешно. Наконец. Пол дня потерял на чепухе. Сегодня доставлю, и попробую, как себя будет вести камера. Завтра отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

БОЛЬШОЕ спасибо всё заработало. Теперь можно и начать изучать. Буду делать проект для склада, из двух камер, одна обзорная, другая с хорошим приближением. Одна видит изменение, и говорит где снимать, а другая делает фото, и фиксирует время. Лучший метод изучения это начать что-нибудь делать.bow.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а еще для VS можно заюзать Image Watch https://visualstudiogallery.msdn.microsoft.com/e682d542-7ef3-402c-b857-bbfba714f78d

но там под vs2012 не знаю есть ли под более старые

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×