В течение некоторого времени я боролся со следующими строками кода на mac, которые возвращали мне ошибку
error: (-215) scn == 3 ||scn == 4 в функции ipp_cvtColor "
в строке, где я пытаюсь написать свое видео out.write(out_frame)
Вот мой код:
import numpy as np
import cv2
from scipy import ndimage, misc
dir_vid='/Users/qandre/Pictures/Videos/video_input.mp4'
cap = cv2.VideoCapture(dir_vid)
fps = cap.get(cv2.CAP_PROP_FPS)
w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
out = cv2.VideoWriter('/Users/qandre/Pictures/Videos/video_output.mp4', fourcc, int(fps), (int(w), int(h)), isColor=False)
if not out :
print("!!! Failed VideoWriter: invalid parameters")
sys.exit(1)
while(cap.isOpened()):
ret, frame = cap.read()
if ret is True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
else:
continue
edges = cv2.Canny(gray,50,150)
out.write(edges)
# Display the resulting frame
cv2.imshow('frame',edges)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
out.release()
cap.release()
cv2.destroyAllWindows()
Итак ... Что может быть не так?
Я должен уточнить, что я получаю эту ошибку только при повороте кадра в оттенках серого благодаря функции cvtColor ().