Indagamos en todo el mundo on line para regalarte la solución a tu problema, si tienes alguna inquietud puedes dejarnos la duda y te contestaremos sin falta, porque estamos para ayudarte.
Ejemplo 1: error: (-215: Aserción fallida)! _Src.empty () en la función ‘cv :: cvtColor’
This error happened because the image didn't load properly.
So you have problem with the previous line cv2.imread my suggestion is:
check if the images exist in the path you give
check the count variable if he have valid number
Ejemplo 2: cv2.error: OpenCV (4.2.0) C: projects opencv-python opencv modules imgproc src color.cpp: 182: error: (-215: Assertion failed)! _Src.empty ( ) en la función ‘cv :: cvtColor’
Hello Everyone,
I had run into the same problem a few days back. Here's my perspective on why this error came up and how can it be fixed.
The reason behind the error:-- ```cv2.imread()or cv2.VideoCapture()``` can't find where the fileisand hence gives src.empty() since Noneis returned instead of image or video
- If you are sure that the path specified is correct, then chances are the file being read is corrupted either completely orin a few bits and pieces.
If you got into this problem when working with an image then here is the fix:-- Change the image, literally. If you don't want to change it then try ```from PIL import Image and Image.open()``` and see if that works andtry to display the image by using matplotlib.- Changing or reproducing the same image is the best option in my opinion.
If you got into this problem when working with a video then here is the fix:-- After using ```cv2.VideoCapture('video path')``` Try something like below example.
```
# suppose this was the source
cap = cv2.VideoCapture('data/input.mpg')# Get width and height of the frame of video
width = cap.get(3)# float width
height = cap.get(4)# float height # Make a video writer to see if video being taken as input inflict any changes you make
fourcc = cv2.VideoWriter_fourcc(*"MJPG")
out_video = cv2.VideoWriter('result/output.avi', fourcc,20.0,(int(width),int(height)),True)# Then try thiswhile(cap.isOpened()):# Read each frame where ret is a return boollean value(True or False)
ret, frame = cap.read()# if return is true continue because if it isn't then frame is of NoneType in that case you cant work on that frameif ret:# Any preprocessing you want to make on the frame goes here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# See if preprocessing is working on the frame it should
cv2.imshow('frame', gray)# finally write your preprocessed frame into your output video
out_video.write(gray)# write the modifies frame into output video # to forcefully stop the running loop and break out, if it doesnt work use ctlr+cif cv2.waitKey(1)&0xFF==ord('q'):break# break out if frame has return NoneType this means that once script encounters such frame it breaks out # You will get the error otherwise else:break# this will tell you from which frame the video is corrupted and need to be changed # this could be due to an empty frame. Empty frame might be a result of mistake made while creating or editing video in tools #like adobe premier pro or other products alike # You can check you output video it will contains all frame before the error is encountered
```
I hope this solves your problem and you can better debug your video next time you encounter something similar.
Si para ti ha sido provechoso nuestro post, sería de mucha ayuda si lo compartieras con más programadores así nos ayudas a difundir nuestro contenido.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)