【发布时间】:2019-02-24 15:17:48
【问题描述】:
我一直在为 mac 上的以下代码行苦苦挣扎,这给我发回了错误
错误:(-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() 函数,我只有在将框架转为灰度时才会出现此错误。
【问题讨论】:
-
您的视频源路径不完整。看看这个answer
-
抱歉,这是我的完整评论:我知道这篇文章,但不幸的是,这并不能解决问题!我试图这样做:dir_vid='/Volumes/Macintosh\ HD/Users/qandre/Pictures/Videos/zelie_test.mp4'(我的视频的绝对路径)但我得到:“警告:无法读取电影文件/Volumes /Macintosh\ HD/Users/qandre/Pictures/Videos/zelie_test.mp4" 我必须明确,当我不将视频转换为黑白然后使用 Canny() 显示边缘时,可以保存视频。 ..还有其他想法吗..?
-
事实上,通过设置 dir_vid="/Volumes/Macintosh HD/Users/qandre/Pictures/Videos/zelie_test.mp4" 可以正确读取视频,但这并不能解决我的问题......
标签: python opencv python-3.5 opencv3.0