1.opencv無法讀取視訊解決方法
最近有抽取視訊幀的需求,是以安裝了opencv,直接去讀取視訊,發現一直打不開.
具體原因:
機器上沒有相應的解碼器;
官方說明:
解決方案:
1.把D:\openCV\opencv\sources\3rdparty\ffmpeg\opencv_ffmpeg_64.dll複制到D:\Python下;
2.把opencv_ffmpeg_64.dll重命名為opencv_ffmpeg300_64.dll;
說明:
1.上面的是我的安裝路徑,可以參考着找到相應的檔案進行操作;
2.我的系統是64位,python版本為2.7.10,opencv版本為3.0,是以在opencv_ffmpeg_64後面加入的是300,後面加的數字是opencv版本号;
參考文獻:OpenCV 2.4 VideoCapture not working on Windows
2.抽取視訊幀并存儲為圖像
主要代碼:
import numpy as np
import cv2
cap = cv2.VideoCapture('1.mp4')
c = 1
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
cv2.imwrite('image/'+str(c) + '.jpg',frame) #存儲為圖像
c = c+1
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
結果截圖: