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相关的错误
另外代码来自网络,所以有很多看不懂的地方,如果大家有详细的教程或者链接什么的,就再好不过了!
感谢! 展开
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相关的错误
另外代码来自网络,所以有很多看不懂的地方,如果大家有详细的教程或者链接什么的,就再好不过了!
感谢! 展开
3个回答
展开全部
# 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()
展开全部
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()
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()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是没有读进文件。使用opencv读取视频,图片时经常遇到的问题,就是使用cv2.read时不管是否成功读取文件,他都不会报错,直到你对读取到的数据处理时才会报错。
看你的报错,frame没有赋值,说明vc.read()没有正常执行,所以检查一下的你的文件是否有问题或者路径是否正确之类的。
看你的报错,frame没有赋值,说明vc.read()没有正常执行,所以检查一下的你的文件是否有问题或者路径是否正确之类的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |