【问题标题】:Python & OpenCV: "error: (-215) scn == 3 || scn == 4 in function ipp_cvtColor" when trying to save videoPython & OpenCV:尝试保存视频时出现“错误:(-215) scn == 3 || scn == 4 in function ipp_cvtColor”
【发布时间】: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


【解决方案1】:

我找到了问题的答案:

.MP4 正在寻找要写入的 3 通道 BGR 图像,但我只提供了单通道图像,因为我正在尝试写入灰度图像

尝试这样做:

edges = cv2.cvtColor(edges, cv2.COLOR_GRAY2BGR)

将我的灰度图像转换为 BGR 图像。虽然我的像素值保持灰色,但这会将边缘更改为 3 通道图像,因此现在它可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多