Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[SOLVED][ERROR] [HELP] Using Qt + OpenCV to get what does webcam see


  • Lifetime Qt Champion

    How did you create your dialog ?



  • Qt GUI application. Qmainwindow


  • Lifetime Qt Champion

    Then how did it become a QDialog ?



  • errr, I changed the QMainwindow to QDialog manually, i should use QMainwindow or QDialog to create Dialog class?



  • [UPDATE]
    After correction, I get another error as following:

    ERROR
    @pi@raspberrypi:~/qt/Dialog$ qmake -project
    pi@raspberrypi:~/qt/Dialog$ qmake Dialog.pro
    pi@raspberrypi:~/qt/Dialog$ make
    g++ -Wl,-O1 -o Dialog cameradevice.o dialog.o main.o moc_cameradevice.o moc_dialog.o -L/usr/lib/arm-linux-gnueabihf -lQtGui -lQtCore -lpthread
    cameradevice.o: In function CameraDevice::CameraDevice(QObject*)': cameradevice.cpp:(.text+0x24): undefined reference tocv::VideoCapture::VideoCapture()'
    cameradevice.o: In function cv::Mat::~Mat()': cameradevice.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x70): undefined reference tocv::fastFree(void*)'
    cameradevice.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x7c): undefined reference to `cv::Mat::deallocate()'
    collect2: ld returned 1 exit status
    make: *** [Dialog] Error 1@



  • The error is because the CameraDevice class is unable to find the cv class when calling it's static member function: VideoCapture. What type of library do you include? Or do you use the QLibrary for that??



  • i include

    1. highgui
    2. cv
    3. cxcore


  • From my knowledge,

    VideoCapture is under highgui.hpp.

    i have include this file already.

    anyone knwo what is happening?


  • Lifetime Qt Champion

    You are not linking to the OpenCV libraries



  • Do you mean in XXX.pro file ?


  • Lifetime Qt Champion

    Yes indeed, in you project pro file



  • @OPENCV_PATH = /usr/local/include/opencv2/
    LIBS_PATH = /usr/local/include/opencv/
    LIBS += -L$$LIBS_PATH
    -lcv
    -lhighgui
    -lcxcore

    INCLUDEPATH += $$OPENCV_PATH/core
    $$OPENCV_PATH/highgui/@

    This is how my linking look like


  • Lifetime Qt Champion

    Are you sure you are linking to all the needed libraries ?



  • no, i am nt sure, but i checked many times if i left out any.
    Should not be left out...
    if this is not left out of libraries, what is the problem ?


  • Lifetime Qt Champion

    Just a missing library. You can check with pkg-config what you need. You can even use it within your pro file (have a look at qmake's documentation)



  • Ok. I give it a try and looh. Thx a lot SGaist



  • [quote author="SGaist" date="1403731430"]Just a missing library. You can check with pkg-config what you need. You can even use it within your pro file (have a look at qmake's documentation) [/quote]

    Don't really know how to do....
    I just have a look at the qmake genarated makefile. The INCPATH inside should be the openCV path ? It is different.
    the another thing to mention is, after i qmake project, my Dialog.pro file will changed. the coding will all replaced.

    i am new to Qt and OpenCV, i just could not link them up.

    Thanks to SGaist again,



  • Hi SGaist,

    Finally I did it!

    I make a slightly change in "qmake.conf" file which is under @/usr/share/qt4/mkspecs/default/qmake.conf@

    I added in the INCLUDEPATH and LIBS.
    Then it Works!!


  • Lifetime Qt Champion

    Don't modify that file, that will make all your projects link to OpenCV. Just correct your pro file with what you added there.



  • Hi SGaist,

    I don't get what you mean,
    Showing what camera get is only a part i need to do,

    I need openCV in my whole project, I need to do a Robot Vision System GUI,
    so, I still not suggested to modify that file?


  • Lifetime Qt Champion

    Modifying /usr/share/qt4/mkspecs/default/qmake.conf means that every new project you'll create will be linked to OpenCV which is not a good idea.

    Just move what you added in qmake.conf in your project's pro file



  • Dear YDYD sir,
    i am new in QT. I also want to start a camera and want a image capturing and video recording functionality. I already triend the example which is given on official webside. But it showing multiple errors in header file. consider there are two header file. first is "one.h" and second is "second.h". In one.h,second.h is included. One.h is included in my application. At first it gives error for one.h. For solving this error i locate that file and add it in "#include </path/one.h>" then it solve the problem. But it shows error for second.h and header files which is included in that. One time i add path for all this error. It solves it but it then shows error in the functions of this header file. Sir i dont know what to do now. So can you send me the demo application to me to my mail id "dangat123suraj@gmail.com" and suggest solution for this problem. Thanking you in advance.


Log in to reply