2012-06-21 3 views
0

Я успешно установил OpenCv & Qt в Ubuntu..i может отлаживать и запускать некоторые примеры кодов, но когда я создаю приложение QtConsole, я не могу его построить ... вот мой примерный код для случайного белого выделения некоторых пикселей в изображениеOpenCV compile Ubuntu

opencv2/core/core.hpp 
opencv2/highgui/highgui.hpp 
void salt(cv::Mat &image, int n) 
{ 
    for(int k=0; k<n; k++) 
    { 
     int i=rand()%image.cols; 
     int j=rand()%image.rows; 

     if(image.channels() == 1) 
     { 
      image.at<uchar>(j,i)=255; 
     } 
     else if(image.channels() == 3) 
     { 
      image.at<cv::Vec3b>(j,i)[0]=255; 
      image.at<cv::Vec3b>(j,i)[1]=255; 
      image.at<cv::Vec3b>(j,i)[2]=255; 
     } 
    } 
} 

int main() 
{ 
    cv::Mat resim = cv::imread("boldt.jpg"); 
    salt(resim,3000); 
    cv::namedWindow("Cerceve"); 
    cv::imshow("Cerceve",resim); 
} 

Я добавил свои libraires в .pro файл как

INCLUDEPATH += /usr/local/include/opencv2 

LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_features2d -lopencv_calib3d 

, когда я пытаюсь запустить программу из терминала он говорит:

INIT сделано

поддержка OpenGL доступны

и ничего не происходит .. нет ошибок при отладке

+0

И как вы его скомпилируете? – Spo1ler

+0

Отредактированные теги, поскольку я ничего не вижу, что указывает на использование библиотек Qt. Вы просто используете qmake в качестве создателя make-файла. Для справки, консольное приложение Qt имеет основную структуру, которая выглядит как 'int main (int argc, char * argv []) {QCoreApplication a (argc, argv); return a.exec(); } ' –

+0

Удалось ли вам создать и успешно запустить приложение, отличное от Qt, которое использует созданный вами двоичный файл OpenCV? – Rook

ответ

1

Добавить cv::waitKey(..) в конце основного()

cv::imshow("Cerceve",resim); 
cv::waitKey(0); 
return 0; 

Вызов cv::waitKey(param) i важно, потому что это то, что обрабатывает цикл событий в открывшемся окне (кроме возврата ключа, нажатого пользователем во время ожидания). Здесь param - это количество миллисекунд, ожидающих возвращения функции. Используйте 0 для бесконечного ожидания до нажатия какой-либо клавиши.

+0

Я все еще получаю вывод, поскольку поддержка init opengl доступна, пока моя фактическая программа работает успешно. Справка Plz. – dazzieta

+0

@ utkarsh13: спрашивайте, как новый вопрос ... – SuperSaiyan

+0

Я задал его как новый вопрос, но никто не ответил. Ссылка на вопрос: http://stackoverflow.com/questions/37509058/why-am-i-getting-init-done-opengl-support-available-output-even-when-i-am-not Пожалуйста, помогите , – dazzieta

Смежные вопросы