Traceback (most recent call last):
File "demo.py", line 132, in
`result = find_strawberry(image)`
File "demo.py", line 63, in find_strawberry
`image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)`
cv2.error: OpenCV(3.4.2) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper'
Personnellement, j'ai passé beaucoup de temps sur cette question, donc jugé pertinent de la publier sur Stackoverflow.
Question tirée de: llSourcell/Object_Detection_demo_LIVE
obtenir la même erreur lors de l'utilisation de la barre de suivi dans opencv mais cette méthode l'a résolu:
img = np.full((512,512,3), 12, np.uint8)
où img
est votre image
Eh bien, je faisais la géométrie épipolaire (trouvez le lien ci-dessous) et j'ai eu ce problème. J'ai résolu cette erreur en utilisant l'une des deux méthodes:
Première méthode - conserver les couleurs d'origine: A. Je charge l'image avec sa couleur d'origine (dans mon cas c'était RVB) en supprimant le paramètre zéro de cv2.imread.
img1 = cv2.imread('image.jpg')
B. Vous devrez peut-être modifier la forme de l'image car elle est RVB
r, c,_ = img1.shape
C. Commentez la conversion
# img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR)
La deuxième méthode - conversion en image en niveaux de gris: A. Je charge l'image dans BGR en ajoutant le paramètre zéro dans cv2.imread.
img1 = cv2.imread('image.jpg',0)
B. Vous devrez peut-être modifier la forme de l'image car elle est BGR
r, c = img1.shape
C. Maintenant, vous pouvez convertir l'image en image en niveaux de gris
img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR)
Si les deux méthodes ne fonctionnent pas pour vous, vous devrez peut-être vérifier les liens ci-dessous, elles pourraient avoir répondu à votre question:
https://github.com/aleju/imgaug/issues/157https://github.com/llSourcell/Object_Detection_demo_LIVE/issues/6
Géométrie épipolaire
Juste au cas où quelqu'un aurait toujours la même erreur même après avoir appliqué le correctif ci-dessus, vérifiez la profondeur de votre image, c'est-à-dire vérifiez si l'image est grayscale
ou colored
depuis cv2.COLOR_BGR2GRAY
ne peut pas convertir les images qui sont déjà grayscale
et génère ainsi cette erreur.