OpenCV-Fehler:Assertion fehlgeschlagen (size.width>0 &&size.height>0) einfacher Code

OpenCV-Fehler:Assertion fehlgeschlagen (size.width>0 &&size.height>0) einfacher Code

Dieser Fehler bedeutet, dass Sie versuchen, ein leeres Bild anzuzeigen. Wenn Sie das Bild mit imshow laden , wird dies normalerweise verursacht durch:

  1. Der Pfad Ihres Bildes ist falsch (in Windows entkommen Sie zweimal Verzeichnistrennzeichen, z. B. imread("C:\path\to\image.png") sollte sein:imread("C:\\path\\to\\image.png") , oder imread("C:/path/to/image.png") );
  2. Die Bilderweiterung ist falsch. (zB ".jpg" unterscheidet sich von ".jpeg");
  3. Sie sind nicht berechtigt, auf den Ordner zuzugreifen.

Eine einfache Problemumgehung, um andere Probleme auszuschließen, besteht darin, das Bild in Ihr Projektverzeichnis zu legen und einfach an imread zu übergeben der Dateiname (imread("image.png") ).

Denken Sie daran, waitKey(); hinzuzufügen , sonst siehst du nichts.

Sie können überprüfen, ob ein Bild korrekt geladen wurde, wie folgt:

#include <opencv2\opencv.hpp>
#include <iostream>
using namespace cv;

int main()
{
    Mat3b img = imread("path_to_image");

    if (!img.data)
    {
        std::cout << "Image not loaded";
        return -1;
    }

    imshow("img", img);
    waitKey();
    return 0;
}