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: 沒(méi)有返回值 """ 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í)才讀,沒(méi)有幀時(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: 沒(méi)有返回值 """ 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)視頻讀取、視頻寫(xiě)入
- 使用python-opencv讀取視頻,計(jì)算視頻總幀數(shù)及FPS的實(shí)現(xiàn)
- VS2010+Opencv+MFC讀取圖像和視頻顯示在Picture控件
- Java使用OpenCV3.2實(shí)現(xiàn)視頻讀取與播放
- 如何使用OpenCV進(jìn)行視頻讀取與處理的完整指南
相關(guān)文章
基于Python編寫(xiě)簡(jiǎn)單實(shí)用的日志裝飾器
在寫(xiě)代碼的時(shí)候,往往會(huì)漏掉日志這個(gè)關(guān)鍵因素,導(dǎo)致功能在使用的時(shí)候出錯(cuò)卻無(wú)法溯源。這個(gè)時(shí)候只要利用日志裝飾器就能解決,本文將用Python自制一個(gè)簡(jiǎn)單實(shí)用的日志裝飾器,需要的可以參考一下2022-05-05Python實(shí)現(xiàn)以時(shí)間換空間的緩存替換算法
緩存是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器,它先于內(nèi)存與CPU交換數(shù)據(jù),因此速度很快。緩存就是把一些數(shù)據(jù)暫時(shí)存放于某些地方,可能是內(nèi)存,也有可能硬盤(pán)。下面給大家介紹Python實(shí)現(xiàn)以時(shí)間換空間的緩存替換算法,需要的朋友參考下2016-02-02詳解Django+Uwsgi+Nginx 實(shí)現(xiàn)生產(chǎn)環(huán)境部署
這篇文章主要介紹了詳解Django+Uwsgi+Nginx 實(shí)現(xiàn)生產(chǎn)環(huán)境部署,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python處理xls文件openpyxl基礎(chǔ)操作
這篇文章主要為大家介紹了python處理xls文件openpyxl基礎(chǔ)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Pandas之read_csv()讀取文件跳過(guò)報(bào)錯(cuò)行的解決
這篇文章主要介紹了Pandas之read_csv()讀取文件跳過(guò)報(bào)錯(cuò)行的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04