-1
votes

QT avec OpenCV: le programme a fini de manière inattendue

Je viens d'installer qt 5.15 code> et teste comment cela fonctionne avec OpenCV. J'ai téléchargé Prebuild OpenCV4.3 et configurez un fichier .pri code> pour être déployé dans qt.

L'Inclure et les libs sont les suivants dans le fichier .pri code> fichier: p> xxx pré>

alors j'exécute une image simple affichage de l'image DOMO: P >

#include "opencv2/opencv.hpp"
using namespace cv;

Mat img = imread("image.png");

if(img.empty())
{
    qDebug()<<"Could not find the image";
}
else
{
    namedWindow("Image");
    imshow("Image", img);
}


1 commentaires

Pouvez-vous spécifier où se trouve le code? Avez-vous essayé d'utiliser un débogueur (comme GDB) pour identifier la ligne où le problème se produit?


4 Réponses :



1
votes

Ce n'est pas clair où est votre exemple de code est situé. Est-ce dans principal ? Généralement dans OpenCV, vous avez également une boucle d'événement (comme dans QT) mais c'est caché. Donc, si vous voulez réellement voir le namedwindow , vous devez appeler CV :: WaitKey () .

Vous pouvez l'appeler comme CV :: WaitKey (1) Si vous le faites périodiquement.

Mais généralement, vous ne devez généralement faire que le traitement de l'image dans OpenCV, convertir le CV :: Mat sur QImage et montrez que dans qt.


0 commentaires

0
votes

pour le crash,

Ma première devineuse est votre variable d'environnement n'est pas définie correctement. S'il vous plaît vérifier que vous assignez l'env. variables correctement.

écrire Imshow () dans Qt ne fonctionnera pas. Comme suggéré par TR3W, vous devez convertir en qimage.

mat img;

qimage img1 = qimage ((uchar *) img.data, img.cols, img.rows, img.step, qimage :: format_indexed8);

Vous pouvez remplacer par votre format d'image pris en charge au lieu d'indexé8.


0 commentaires

0
votes

1 commentaires

Vous avez un style de réponse unique. Il est très facile de repérer que vous affichez la même réponse identique à plusieurs questions. S'il te plaît ne fait pas ça.