From e70bef88fdb5ffdf1c2dcf99ac9e22181d18f5ac Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 27 Apr 2013 12:09:05 +0200 Subject: Implement video widgets properly, so they're fast enough --- ftnoir_tracker_pt/video_widget.cpp | 4 ++-- ftnoir_tracker_pt/video_widget.h | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'ftnoir_tracker_pt') diff --git a/ftnoir_tracker_pt/video_widget.cpp b/ftnoir_tracker_pt/video_widget.cpp index fe2b2e342..7ca1892a5 100644 --- a/ftnoir_tracker_pt/video_widget.cpp +++ b/ftnoir_tracker_pt/video_widget.cpp @@ -32,8 +32,8 @@ void VideoWidget::update_image(Mat frame, std::auto_ptr< vector > points) else qframe = qframe.scaled(size(), Qt::IgnoreAspectRatio, Qt::FastTransformation); QPainter painter(&qframe); - painter.setPen(Qt::blue); - painter.setBrush(Qt::blue); + painter.setPen(Qt::red); + painter.setBrush(Qt::red); if (points.get() != NULL) { const int crosshair_radius = 10; for (vector::iterator iter = points->begin(); diff --git a/ftnoir_tracker_pt/video_widget.h b/ftnoir_tracker_pt/video_widget.h index a68d8028a..eb63a15e3 100644 --- a/ftnoir_tracker_pt/video_widget.h +++ b/ftnoir_tracker_pt/video_widget.h @@ -16,20 +16,22 @@ #include #include #include +#include // ---------------------------------------------------------------------------- -class VideoWidget : public QLabel +class VideoWidget : public QWidget { Q_OBJECT public: - VideoWidget(QWidget *parent) : QLabel(parent), mtx() { + VideoWidget(QWidget *parent) : QWidget(parent), mtx() { } void update_image(cv::Mat frame, std::auto_ptr< std::vector > points); protected slots: void paintEvent( QPaintEvent* e ) { - setPixmap(pixmap); - QLabel::paintEvent(e); + QMutexLocker((QMutex*)&mtx); + QPainter painter(this); + painter.drawPixmap(e->rect(), pixmap); } private: -- cgit v1.2.3