Python OpenCV讀取視頻報(bào)錯(cuò)的問(wèn)題解決
最近由于項(xiàng)目的需要,經(jīng)常需要使用opencv讀視頻操作,會(huì)經(jīng)常遇到一個(gè)問(wèn)題,就是視頻讀完之后會(huì)出現(xiàn)報(bào)錯(cuò)的情況,雖然不影響代碼結(jié)果,但是對(duì)于吹毛求疵的我實(shí)在忍受不了。
會(huì)報(bào)錯(cuò)的程序:
# -*-coding:utf-8-*-
"""
File Name: read_video.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2
def read_video(video_path: str):
"""
OpenCV讀視頻小工具,解決視頻讀完報(bào)錯(cuò)的問(wèn)題
:param video_path: 輸入需要讀取的視頻文件路徑
:return: 沒有返回值
"""
print('視頻路徑:', video_path)
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
# get a frame
ret, frame = cap.read()
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
print('視頻讀完!')
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
path = r'D:\multi_insect_videos\multi_object00.mp4'
read_video(path)可以把視頻正常讀完,但是結(jié)果會(huì)輸出錯(cuò)誤
Traceback (most recent call last):
File "E:/PyCharmDocument/create_ST_image/multi_insect_processing/crop_video_to_images.py", line 76, in <module>
read_video(path)
File "E:/PyCharmDocument/create_ST_image/multi_insect_processing/crop_video_to_images.py", line 65, in read_video
cv2.imshow("capture", frame)
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-uzca7qz1\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'原因是視頻結(jié)束后,opencv的imshow()函數(shù)讀不了幀就出錯(cuò)了。解決方法:在imshow()之前加入判斷,只有當(dāng)有幀時(shí)才讀,沒有幀時(shí)直接退出循環(huán)。
不會(huì)報(bào)錯(cuò)的代碼:
# -*-coding:utf-8-*-
"""
File Name: read_video.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2
def read_video(video_path: str):
"""
OpenCV讀視頻小工具,解決視頻讀完報(bào)錯(cuò)的問(wèn)題
:param video_path: 輸入需要讀取的視頻文件路徑
:return: 沒有返回值
"""
print('視頻路徑:', video_path)
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
# get a frame
ret, frame = cap.read()
if not ret:
break
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
print('視頻讀完!')
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
path = r'D:\multi_insect_videos\multi_object00.mp4'
read_video(path)程序輸出結(jié)果:
視頻路徑: D:\multi_insect_videos\multi_object00.mp4 視頻讀完! Process finished with exit code 0
到此這篇關(guān)于Python OpenCV讀取視頻報(bào)錯(cuò)的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Python OpenCV讀取視頻報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭
- pyqt5+opencv?實(shí)現(xiàn)讀取視頻數(shù)據(jù)的方法
- Python OpenCV讀取顯示視頻的方法示例
- opencv3/C++實(shí)現(xiàn)視頻讀取、視頻寫入
- 使用python-opencv讀取視頻,計(jì)算視頻總幀數(shù)及FPS的實(shí)現(xiàn)
- VS2010+Opencv+MFC讀取圖像和視頻顯示在Picture控件
- Java使用OpenCV3.2實(shí)現(xiàn)視頻讀取與播放
- 如何使用OpenCV進(jìn)行視頻讀取與處理的完整指南
相關(guān)文章
淺談Python中re.match()和re.search()的使用及區(qū)別
這篇文章主要介紹了淺談Python中re.match()和re.search()的使用及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
零基礎(chǔ)學(xué)習(xí)python偏函數(shù)語(yǔ)法的推導(dǎo)方法步驟
這篇文章主要介紹了零基礎(chǔ)學(xué)習(xí)python偏函數(shù)語(yǔ)法的推導(dǎo)方法步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
python使用fileinput模塊實(shí)現(xiàn)逐行讀取文件的方法
這篇文章主要介紹了python使用fileinput模塊實(shí)現(xiàn)逐行讀取文件的方法,涉及Python中fileinput模塊操作文件的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
Pytorch建模過(guò)程中的DataLoader與Dataset示例詳解
這篇文章主要介紹了Pytorch建模過(guò)程中的DataLoader與Dataset,同時(shí)PyTorch針對(duì)不同的專業(yè)領(lǐng)域,也提供有不同的模塊,例如?TorchText,?TorchVision,?TorchAudio,這些模塊中也都包含一些真實(shí)數(shù)據(jù)集示例,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-01-01
Python從入門到精通之條件語(yǔ)句和循環(huán)結(jié)構(gòu)詳解
Python中提供了強(qiáng)大而靈活的條件語(yǔ)句和循環(huán)結(jié)構(gòu),本文將從入門到精通地介紹它們的使用方法,并通過(guò)相關(guān)代碼進(jìn)行講解,希望對(duì)大家深入了解Python有一定的幫助2023-07-07

