日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python在视频处理上的优势有哪些

發(fā)布時(shí)間:2025/3/15 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python在视频处理上的优势有哪些 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天與大家分享一些Python處理視頻的一下經(jīng)驗(yàn),視頻的處理和圖片的處理類似,只不過(guò)視頻處理需要連續(xù)處理一系列圖片。


一般有兩種視頻源,一種是直接從硬盤(pán)加載視頻,另一種是獲取攝像頭視頻。

一共這幾個(gè)模塊:

class videoReader 讀取視頻

class videoFramesExtractor(videoReader):繼承了讀取視頻,主要是用來(lái)限制讀取視頻中的哪些幀,并保存。

read_excel_single(excel_path,event_instance): 處理Excel中的數(shù)組,找到事件的幀數(shù)范圍:

Excel內(nèi)容是這樣的,需要的只是第二列的幀范圍,另外第二列中的這些值還有重復(fù)的所以需要去除重復(fù):

每一個(gè)范圍,例如:23450:23461之內(nèi)的幀要存放在一個(gè)文件夾里。

?

?

[python]?view plaincopy
  • </pre><pre?name="code"?class="python">#?-*-?coding:?cp936?-*-??
  • ??
  • import?cv2.cv?as?cv??
  • import?os??
  • import?cv2??
  • import?numpy??
  • import?Image??
  • import?xlrd??
  • ??
  • class?videoReader:??
  • ????frame_count=0??
  • ????def?__init__(self,videoPath):??
  • ????????self.videoPath=videoPath??
  • ????def?video_init(self):??
  • ????????self.capture?=?cv.CaptureFromFile(self.videoPath)??
  • ????????self.win_name?=?"test"??
  • ????????cv.NamedWindow(self.win_name,?cv.CV_WINDOW_AUTOSIZE)??
  • ??????????
  • ????def?read(self):??
  • ????????self.video_init()??
  • ????????while?1:??
  • ????????????self.frame_count+=1??
  • ????????????image?=?cv.QueryFrame(self.capture?)??
  • ?????????????
  • ????????????cv.ShowImage(self.win_name,?image)??
  • ????????????print?self.frame_count??
  • ????????????c?=?cv.WaitKey(10)??
  • ????????????if?c?==?27:??
  • ????????????????break??
  • ??????????????
  • ????????cv.DestroyWindow(self.win_name)??
  • ??
  • ??
  • class?videoFramesExtractor(videoReader):??
  • ????save_path='d:/'??
  • ????def?__init__(self,videoPath,frameSpan,image_prefix):#image_prefix=event_name??
  • ????????videoReader.__init__(self,videoPath)??
  • ????????self.frameSpan=frameSpan??
  • ????????self.image_prefix=image_prefix??
  • ??????????
  • ????def?read(self):??
  • ????????capture?=?cv2.VideoCapture(self.videoPath)??
  • ????????win_name?=?"test"??
  • ????????cv.NamedWindow(win_name,?cv.CV_WINDOW_AUTOSIZE)??
  • ????????success,frame?=?capture.read()??
  • ??????????
  • ????????init_row=0??
  • ????????while?success:??
  • ??????????????
  • ????????????self.frame_count+=1??
  • ????????????success,frame?=?capture.read()??
  • ????????????#cv2.imshow(win_name,frame)?#顯示照片浪費(fèi)時(shí)間??
  • ????????????time_duration=self.frameSpan[init_row][1]-self.frameSpan[init_row][0]+1??
  • ????????????if?self.frame_count>=self.frameSpan[init_row][0]?and?\??
  • ??????????????self.frame_count<=self.frameSpan[init_row][1]?:??
  • ??????????????????
  • ?????????????????????????????????????????
  • ????????????????self.image_save(frame,init_row,time_duration)??
  • ??????????????????????
  • ??????????????????
  • ????????????????if?self.frame_count==self.frameSpan[init_row][1]:??
  • ????????????????????init_row+=1??
  • ????????????????if?init_row==len(self.frameSpan):??
  • ????????????????????cv.DestroyWindow(win_name)??
  • ????????????????????return?0??
  • ??????????????????
  • ????????????c?=?cv.WaitKey(10)??
  • ????????????if?c?==?27:??
  • ????????????????break??
  • ??????????????
  • ????????cv.DestroyWindow(win_name)??
  • ????def?image_save(self,frame,init_row,time_duration):??
  • ????????save_path=self.make_folder(init_row,time_duration)??
  • ??????
  • ????????#frame=Image.fromarray(frame)??
  • ????????#frame.resize((300,300))??
  • ????????#frame.save('%s//%s.jpg'?%?(save_path,self.frame_count))??
  • ????????frame=cv2.resize(frame,(300,300))#??
  • ????????cv2.imwrite(?'%s//%s.jpg'?%?(save_path,self.frame_count),?frame)??
  • ??
  • ??????????
  • ????def?make_folder(self,init_row,time_duration):??
  • ????????temp=?self.image_prefix+'_'+str(init_row)+'_'+str(time_duration)#事件名稱_事件順序_??
  • ????????new_path?=?os.path.join(self.save_path,temp)??
  • ????????if?not?os.path.isdir(new_path):??
  • ????????????os.makedirs(new_path)??
  • ????????return?new_path??
  • ??????
  • ??
  • ??????
  • def?read_excel_single(excel_path,event_instance):??
  • ??????????
  • ????????data=[]??
  • ????????data=xlrd.open_workbook(excel_path)??
  • ????????#read?the?first?sheets??
  • ????????table?=?data.sheets()[0]??
  • ????????#read?the?num?fo?cols??
  • ????????nrows?=?table.nrows??
  • ????????rowmsg=[]#用來(lái)存儲(chǔ)幀的范圍,及事件的類別,描述。??
  • ??
  • ????????for?i?in?xrange(nrows):??
  • ????????????start_frame,end_frame=table.row_values(i)[1].split(':')??
  • ????????????rowmsg.append([int(start_frame),int(end_frame),table.row_values(i)[3]])??
  • ??
  • ????????rowmsg.sort(lambda?x,y:cmp(x[0],y[0]))#按照數(shù)字大小排序~??
  • ??????????
  • ????????event_id=[]??
  • ????????event_id=event_instance??
  • ????????#print?event_id??
  • ??
  • ??????????????
  • ????????event=[]??
  • ????????for?item?in?xrange(len(rowmsg)):??
  • ????????????if?rowmsg[item][2]==event_id:#??
  • ????????????????event.append(rowmsg[item])??
  • ????????if?event==[]:??
  • ????????????print?("there?is?no?%s?occurs"?%?event_instance)??
  • ????????????return?0??
  • ????????#去除重復(fù)??
  • ????????????????????????
  • ????????cur_pos=1??
  • ????????new_rowmsg=[]??
  • ????????pre_s=event[0][0]??
  • ????????pre_e=event[0][1]??
  • ????????cur_s=event[cur_pos][0]??
  • ????????cur_e=event[cur_pos][1]??
  • ??
  • ????????while?cur_pos<len(event)-1:???
  • ????????????while?not?(cur_s>pre_e):??
  • ????????????????if?cur_s>pre_s:??
  • ????????????????????cur_s=pre_s??
  • ????????????????if?cur_e<pre_e:??
  • ????????????????????cur_e=pre_e??
  • ????????????????still_pos=[cur_s,cur_e,event_id]??
  • ????????????????cur_pos+=1??
  • ????????????????if?cur_pos==len(event)-1:??
  • ????????????????????break??
  • ??????????????????????????????
  • ????????????????pre_s=cur_s??
  • ????????????????pre_e=cur_e??
  • ????????????????cur_s=event[cur_pos][0]??
  • ????????????????cur_e=event[cur_pos][1]??
  • ????????????new_rowmsg.append(still_pos)??
  • ????????????if?cur_pos==len(event)-1:??
  • ????????????????break??
  • ??????
  • ????????????cur_pos+=1??
  • ????????????pre_s=cur_s??
  • ????????????pre_e=cur_e??
  • ????????????cur_s=event[cur_pos][0]??
  • ????????????cur_e=event[cur_pos][1]??
  • ??
  • ??????????
  • ????????return?new_rowmsg??
  • ??????????
  • ??????
  • ???????
  • excel_source='E:/08ann/dev_20071101/LGW_20071101_E1_CAM1.mpeg.xlsx'??
  • event_instance='CellToEar'??
  • ??
  • row_msg=read_excel_single(excel_source,event_instance)??
  • new_row=[?item[0:2]?for?item?in?row_msg?]???
  • ??
  • filename?=?"G:/TrecvidData/08/DEV/LGW_20071101_E1_CAM1.mpg"??
  • ??
  • ??
  • ??????????????
  • videoread=videoFramesExtractor(filename,new_row,'CellToEar')??
  • videoread.read()??
  • 有幾點(diǎn)發(fā)現(xiàn):

    cv2.的函數(shù)輸出的數(shù)據(jù)類型基本都是numpy,而cv.不行。所以盡量在Python中使用cv2.的函數(shù)。

    通過(guò)numpy轉(zhuǎn)換后的圖片會(huì)在顏色上有些失真,不過(guò)影響不大,如果是灰度圖的話則完全沒(méi)有影響。

    總結(jié)

    以上是生活随笔為你收集整理的Python在视频处理上的优势有哪些的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲一区二区三区免费看 | www.成人| 国产精品欧美综合亚洲 | 国产喷水福利在线视频 | 国产综合图区 | 污视频在线观看免费 | 黄色免费在线观看视频 | 天堂色网 | 免费观看黄色av | 国产一区二区三区四区在线观看 | 性欧美最猛 | 久草91| 无码精品一区二区三区AV | 99热这里只有精品首页 | 九色91porny| 日本一区二区免费电影 | 深夜激情网站 | 欧美xxxx18国产| 在线观看99 | 欧美456| yjizz视频 | 91精品国产综合久久久蜜臀粉嫩 | 欧美亚洲第一页 | 成年免费视频黄网站在线观看 | 中文字幕成人动漫 | 日本国产在线 | 国产亚洲天堂网 | 亚洲国产精品女人久久久 | 亚洲成人免费在线观看 | 在线精品自拍 | 亚洲精品在线观看免费 | 日韩av图片 | 香蕉网在线| 91亚洲精华国产精华精华液 | 顶级毛茸茸aaahd极品 | 亚洲欧美日韩一区二区三区四区 | 波多野结衣影片 | 一区二区三区四区不卡 | 国产无遮挡又黄又爽又色 | 午夜精品av | 丰满的女邻居 | 成人在线一区二区 | 日韩网站免费观看高清 | 96国产视频| 久久久免费观看 | 激情小视频 | 亚洲精品一区二区三区影院忠贞 | 免费一级淫片 | 免看一级片 | 欧美一级免费在线观看 | 国产福利不卡 | jjzz日本视频 | 黄色三级网站在线观看 | 波多野结衣喷潮 | 高清中文字幕av | 日韩av在线观看免费 | 欧美xxxx少妇| 欧美播放| 欧日韩视频 | 欧美日韩国产免费一区二区三区 | 国产精品xxxxx | 色偷偷av男人的天堂 | 国产在线视频自拍 | 本道久久 | www.九色.com| 夜夜激情网 | 无码国产精品久久一区免费 | 巨大黑人极品videos精品 | 日本韩国在线观看 | 国产在线视频一区二区三区 | 无码国产精品一区二区色情男同 | 欧美老肥妇做.爰bbww视频 | 欧美人一级淫片a免费播放 西方av在线 | 亚洲高清毛片 | 西西4444www大胆无码 | 成人在线观看免费 | 91九色视频在线 | 欧美黄色一级片视频 | 国产一区色 | 亚洲视频在线观看一区二区三区 | 亲子乱一区二区三区 | 欧美激情偷拍 | av免费看网站 | 欧美天堂一区 | 黄色av观看 | 午夜亚洲AV永久无码精品蜜芽 | 91精品国产综合久久久蜜臀图片 | 人人人插 | 久久性片 | 免费看的一级片 | 狠狠干91| 精品无码人妻一区二区三 | 青青草十七色 | 中文字幕不卡在线播放 | 性囗交免费视频观看 | 激情在线观看视频 | 精品福利在线视频 | 亚洲精品视频91 | 青娱乐最新官网 |