Important: Please read the Qt Code of Conduct -

Advise for Qthreads and the opencv frame processing sequentially

  • Hi,

    I have an object detector thread (created with move thread) and looks slow to catch up current fps from camera.

    I want to separate stream capture (cv::cap) 1 thread and it will distribute the task (object detection) to the other threads (6 threads).

    1 thread -> UI
    1 thread for stream capture and sending the frames to the worker threads
    6 threads for object detection and send back to results to the capture thread .

    But I dont want to lose frame sequence. I mean I wan to show results in the screen as normal frame sequence. If som thread sends the processed frame before the previous frame it should wait its ques to show.

    send frame numbers : 1 ,2 , 3 ,4 ,5

    get result and show them as soon as awailable in same sequence 1 , 2 , 3 ,4

    suggestions :)

  • Lifetime Qt Champion


    Based on your other thread: big GPU + stronger machine. 6 streams with high definition images can't be processed in real time if you don't have the hardware that follows.

  • This is another issue. Other thread for 6 live stream just showing on the screen through opencv.

    This one only one stream an 8 cores i7 machine.

    I wan to utilize all possible cores for object detection which send them individual frames and get back to show on the screen.

    How can I show them again in right sequence

  • Lifetime Qt Champion

    My recommendation still stands: you should consider exploiting a GPU to speed up processing of your images rather than parallelising on your CPUs.

  • try to keep budget down..
    1080ti almost 800 usd..

    if I have 8 cores I should used it.

Log in to reply