Python-OpenCV cv2 Errore OpenCV: asserzione non riuscita (scn == 3 || scn == 4) in funzione sconosciuta, file .. \ .. \ .. \ modules \ imgproc \ src \ color.cpp

Sto cercando di imparare i contorni in Python usando cv2.

Ho provato il seguente codice fornito in una guida tutorial:

import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('C:\Users\Prashant\Desktop\test.jpg') imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(imgray,127,255,0) image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) img = cv2.drawContour(im, contours, -1, (0,255,0), 3) cv2.imshow('Image1',img) 

Sto ottenendo questo errore:

 File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp, line 3402 Traceback (most recent call last): File "", line 1, in  execfile(filename, namespace) File "C:/Users/Prashant/.spyder2/.temp.py", line 15, in  imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) cv2.error: ..\..\..\modules\imgproc\src\color.cpp:3402: error: (-215) scn == 3 || scn == 4 

dice che l’immagine in ingresso dovrebbe avere 3 o 4 canali prima di applicare la funzione cv2.cvtColor .

quindi controlla la forma dell’immagine prima di applicare la funzione print im.shape . se il risultato è di None type (la maggior parte delle volte, questo è il problema), l’immagine non viene caricata correttamente, molto probabilmente perché il percorso non è corretto.

il punto è che l’immagine dovrebbe avere 3 dimensioni, righe, colonne e profondità.

Se ricevi questo errore su un lampone PI con fotocamera PI, prova a eseguire prima questo comando:

 sudo modprobe bcm2835-v4l2 

1a stampa rit. Se mostra false, la tua immagine non viene presa correttamente. Se viene visualizzato True Prova questo comando – sudo modprobe bcm2835-v4l2 Oppure nel tuo file / etc / modules aggiungi bcm2835-v4l2 in fondo.