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:
- Ü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 . - Überprüfen Sie das Lesen des Bildes: Stellen Sie
cvtColor()
vor sicher, dass das Bild erfolgreich gelesen wurde. Mitcv2.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. - 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.
- Ü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. - Ü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
) . Mithilfeimage.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.