So beheben Sie den Fehler: (-215:Assertion failed) !_src.empty() in der Funktion 'cv::cvtColor'

Das Auftreten des Fehlers „(-215: Assertion failed) !_src.empty() in function ‚cv::cvtColor‘“ bedeutet normalerweise, dass das Eingabebild leer ist ​cvtColor()​, wenn Um dieses Problem zu beheben, können Sie Folgendes versuchen:

  1. Überprüfen Sie den Bildpfad: Stellen Sie sicher, dass Ihr Bildpfad korrekt ist und die Bilddatei vorhanden ist. Wenn die Bilddatei nicht vorhanden ist oder der Pfad falsch ist, kann das Bild nicht gelesen werden, was zu ​cvtColor()​einem Fehler .
  2. Überprüfen Sie das Lesen des Bildes: Stellen Sie ​cvtColor()​vor sicher, dass das Bild erfolgreich gelesen wurde. Mit ​cv2.imread()​der Funktion das Bild lesen und prüfen, ob der Rückgabewert leer ist. Wenn das Lesen des Bildes fehlschlägt, liegt das möglicherweise daran, dass das Bildformat nicht unterstützt wird oder die Bilddatei beschädigt ist.
  3. Bildgröße prüfen: Prüfen Sie vor der Farbkonvertierung, ob die Bildgröße den Anforderungen entspricht. Bei einigen Farbkonvertierungsfunktionen gelten Einschränkungen hinsichtlich der Bildgröße. Wenn die Bildgröße nicht den Anforderungen entspricht, schlägt die Konvertierung fehl.
  4. Überprüfen Sie die Anzahl der Bildkanäle: Einige Farbkonvertierungsfunktionen erfordern, dass das Eingabebild über eine bestimmte Anzahl von Kanälen verfügt, z. B. einen Kanal für Graustufenbilder und drei Kanäle für Farbbilder. Bevor Sie die Farbkonvertierung durchführen, können Sie ​image.shape​die Eigenschaft , um die Anzahl der Kanäle des Bildes zu überprüfen und sicherzustellen, dass es den Anforderungen entspricht.
  5. Überprüfen Sie den Bilddatentyp: Die Farbkonvertierungsfunktion stellt auch Anforderungen an den Bilddatentyp, bei dem es sich normalerweise um einen vorzeichenlosen 8-Bit-Integer-Typ ( ​uint8​​​) . Mithilfe ​image.dtype​der Eigenschaft den Datentyp des Bildes überprüfen und sicherstellen, dass es den Anforderungen entspricht.

Hier ist ein einfacher Beispielcode, der zeigt, wie man mit ​cvtColor()​der Funktion :

pythonCopy codeimport cv2
try:
    # 读取彩色图像
    image = cv2.imread('image.jpg')
    
    # 检查图像是否为空
    if image is None:
        print("Error: Failed to read image")
        exit()
    
    # 将彩色图像转换为灰度图像
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    # 显示原始图像和灰度图像
    cv2.imshow('Original Image', image)
    cv2.imshow('Gray Image', gray_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
except Exception as e:
    print("Error:", e)

Bitte stellen Sie sicher, dass Sie OpenCV korrekt installiert haben und ​image.jpg​ersetzen Sie ihn durch Ihren eigenen Pfad zum Farbbild. In diesem Beispielcode wird zunächst das Farbbild mit ​cv2.imread()​der Funktion , anschließend ​cv2.cvtColor()​wird das Farbbild mit der Funktion in ein Graustufenbild umgewandelt und das Ergebnis angezeigt. Wenn Sie auf den Fehler „(-215: Assertion failed) !_src.empty() in function ‚cv::cvtColor‘“ stoßen, beheben Sie ihn bitte anhand der oben genannten Methoden.

Supongo que te gusta

Origin blog.csdn.net/q7w8e9r4/article/details/132097621
Recomendado
Clasificación