J'essaie de capturer une capture d'écran sur mon pc linux. La compilation de code est bien, mais si je tente de l'exécuter, il ne cesse de lancer la même erreur comme ci-dessous:X11 XGetImage Erreur BadMatch (attributs de paramètres invalides)
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 73 (X_GetImage)
Serial number of failed request: 7
Current serial number in output stream: 7
Quelqu'un peut-il me aider à comprendre quel est le problème?
Voici le code:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
using namespace cv;
int main()
{
Display* d = XOpenDisplay(nullptr);
auto root = DefaultRootWindow(d);
auto img = XGetImage(d, root, 0, 0, 1000, 1000, AllPlanes, ZPixmap);
auto rimg = Mat(1000, 1000, CV_8UC4, img->data);
imshow("test image", rimg);
waitKey(0);
return 0;
}
est votre environnement DISPLAY ensemble variable? Si c'est le cas, essayez d'utiliser NULL au lieu de nullptr – cup
Je n'ai pas touché à autre chose. Et la valeur NULL ne fonctionne pas. –
Si le paramètre de XOpenDisplay est NULL ou nullptr, il prend la valeur de la variable d'environnement DISPLAY. Si votre variable d'environnement DISPLAY n'est pas définie, cela vous donnera des erreurs. – cup