python OpenCV视频拆分图片代码 200

#coding:utf-8importcv2importnumpyasnpimportosvc=cv2.VideoCapture("青花瓷.mp4")C=1ifvc.is... # coding:utf-8

import cv2
import numpy as np
import os

vc = cv2.VideoCapture("青花瓷.mp4")
C = 1
if vc.isOpened():
rVal, frame = vc.read()
else:
rVal = False
while rVal:
rVal, frame = vc.read()
rows, cols, channel = frame.shape
# frame2=cv2.resize(frame,(cols/3,rows/3),fx=0,fy=0,interpolation=cv2.INTER-AREA)
if C % 5 == 0: # every 5 fps write frame to img
cv2.imwrite('./image/'+str(C)+'.jpg', frame)
# cropped001 = frame2[0:300,300:600] #y change from 0 to 300 x change from 300 to 600
# cv2.im write('./cropped/'+str(c)+'001.jpg',cropped001)
C = C+1
cv2.waitKey(1)

vc.release()

用python 写的一段代码,想要把视频拆分成图片,却一直报错,如下:
rows, cols, channel = frame.shape
AttributeError: 'NoneType' object has no attribute 'shape'

不知道该怎么解决,之前有报错过,跟frame相关的错误
另外代码来自网络,所以有很多看不懂的地方,如果大家有详细的教程或者链接什么的,就再好不过了!
感谢!
展开
 我来答
我记你懂
2019-04-07 · 让科技超越时空,铭记你我他的点点滴滴
我记你懂
采纳数:107 获赞数:296

向TA提问 私信TA
展开全部

# coding:utf-8

import cv2

import numpy as np

import os

print("1")

vc = cv2.VideoCapture("123.mp4")

C = 1

print("2")

if vc.isOpened():

rVal, frame = vc.read()

else:

print("3")

rVal = False

while rVal:

print(C)

if C % 1000 == 0: # every 5 fps write frame to img

path='./image/'+str(C)+'.jpg'

cv2.imwrite(path, frame)

# cropped001 = frame2[0:300,300:600] #y change from 0 to 300 x change from 300 to 600

# cv2.im write('./cropped/'+str(c)+'001.jpg',cropped001)

print(C)

cv2.waitKey(1)

C = C + 1

vc.release()

更多追问追答
追问
程序已正常运行,可是还是没有图片是什么原因呢?
追答

图片肯定是有的,我已经运行成功了的

DYWILLIA
2019-04-06
知道答主
回答量:82
采纳率:0%
帮助的人:12.3万
展开全部
import cv2

cap = cv2.VideoCapture(0)//0表示读取摄像头内容,若读取视频,把0改为视频地址即可
while(1):
# get a frame
ret, frame = cap.read()
# show a frame
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
努力成为不熬夜的熊猫
2019-04-07 · TA获得超过209个赞
知道小有建树答主
回答量:102
采纳率:84%
帮助的人:40.8万
展开全部
应该是没有读进文件。使用opencv读取视频,图片时经常遇到的问题,就是使用cv2.read时不管是否成功读取文件,他都不会报错,直到你对读取到的数据处理时才会报错。
看你的报错,frame没有赋值,说明vc.read()没有正常执行,所以检查一下的你的文件是否有问题或者路径是否正确之类的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式