Заранее благодарю за поддержку.
Я использую OpenCV для обработки видеокадров, снятых видеокамерой, и показываю обработанные кадры в виде простого GUI, реализованного в Qt5. В GUI изображения отображаются с использованием QPixmap в метке. Алгоритмы OpenCV должны быть правильными, поскольку, если я пишу, выходные данные верны, и они в основном являются некоторыми примерами, предоставленными OpenCV.
Я реализовал различные обработки: для преобразования из цветовой шкалы в серую и для двоичной порог (см. изображение 1 ), результаты в порядке (этот «вид» камеры правильный). Тем не менее, при попытке отобразить («в режиме реального времени») обнаружения ключевых точек (используя SURF -представление изображения 2 -) и контуры обнаружения (используя Canny -see image 3 -), отображаемые изображения выглядят странно.
Основная проблема заключается в том, что они кажутся одновременно "намного ближе" (см. 2 ) и двойными (см. 3 ).
В используемом мной коде Qt:
ui->labelView->setScaledContents(true);
Я выполняю преобразование обработанного кадра OpenCV в QImage, используя:
QImage output((const unsigned char*) _frameProcessed.data, _frameProcessed.cols, _frameProcessed.rows, QImage::Format_Indexed8);
И отображаю изображение используя:
ui->labelView->setPixmap(QPixmap::fromImage(frame));
GUI и обработка OpenCV выполняются в разных потоках: я перемещаю обработку изображения в поток в начальной настройке.
Если вам нужна дополнительная информация, пожалуйста, просто дайте мне знать.
Большое спасибо заранее!
С уважением,