日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

使用 Python 在視頻上渲染文本

來源: 責編: 時間:2023-11-07 09:14:42 286觀看
導讀在本文中,我們將學習如何使用 python 在視頻中渲染響應式文本,我們將使用 opencv 這個包,這是一個非常全面的計算機視覺處理庫,會給我們的視頻圖像處理帶來極大的便利。現在,讓我們通過 pip 來進行安裝。pip install openc

在本文中,我們將學習如何使用 python 在視頻中渲染響應式文本,我們將使用 opencv 這個包,這是一個非常全面的計算機視覺處理庫,會給我們的視頻圖像處理帶來極大的便利。現在,讓我們通過 pip 來進行安裝。UQb28資訊網——每日最新資訊28at.com

pip install opencv-python

在我們需要使用 opencv 的時候,就可以像下面這樣來引用。UQb28資訊網——每日最新資訊28at.com

import cv2

現在讓我們進入下一步,選擇一個視頻并導入到程序中。UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

第一步 —— 導入視頻

UQb28資訊網——每日最新資訊28at.com

這將是一個簡單的步驟。我們將做兩件事: 導入一個視頻和找到視頻的幀速率。我們將使用幀速率來計算視頻中的秒數,這樣我們就可以計算不同文本的渲染時間。UQb28資訊網——每日最新資訊28at.com

我們使用 VideoCapture 方法導入視頻。UQb28資訊網——每日最新資訊28at.com

tree_video = cv2.VideoCapture('tree.mov')

現在我們來計算導入視頻的幀速率。UQb28資訊網——每日最新資訊28at.com

fps = tree_video.get(cv2.CAP_PROP_FPS)print(fps)#result23.97

23.97!這意味著視頻基本上每秒運行24幀,所以24次循環相當于1秒的視頻。UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

第二步 —— 讀取文本文檔

UQb28資訊網——每日最新資訊28at.com

在這一步中,我們將從文本文檔中讀取文本。我們將使用 open 函數,它是 Python 附帶的一個內置函數。下面是我將要導入的文本文檔的屏幕截圖。UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

確保每個句子都在新的一行上。在讀取文本文檔時,我們將把每一行轉換為一個列表項。UQb28資訊網——每日最新資訊28at.com

poem = open('under_the_giant_tree.txt')poem_lines = list(poem)print(poem_lines)

圖片UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

第三步 —— 響應式文字功能

UQb28資訊網——每日最新資訊28at.com

在這一步中,我們將編寫一個用于更新文本的函數。我決定根據不同的時間戳更新文本,但是可以隨意更改為不同的情況。UQb28資訊網——每日最新資訊28at.com

frame_ = 0def text_update(frame_): if frames_ < (5*fps):  text = str(poem_lines[2]) elif frames_ < (10*fps):  text = str(poem_lines[4]) elif frames_ < (15*fps):  text = str(poem_lines[6]) elif frames_ < (20*fps):  text = str(poem_lines[8]) else:  text = "no text found" return text

使用 if-else 來確定正在播放的視頻的時間戳。UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

定義一個名為“frame_”的新變量來傳入視頻幀。這樣可以以秒為單位計算持續時間。我們已經知道從第一步開始的每秒幀數,即24幀每秒。在這個函數中,文本將每五秒更新一次。我將詩的行分配給 text 變量。UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

現在,讓我們進入最后一步。UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

最后一步 —— 渲染視頻

UQb28資訊網——每日最新資訊28at.com

太好了!我們快完成了。在最后一步,我們將把迄今為止所做的一切結合起來。我們將使用 while 循環來觸發程序。我們可以使用“ escape”或“ q”鍵結束循環。UQb28資訊網——每日最新資訊28at.com

while(True):ret, frame = tree_video.read()font = cv2.FONT_HERSHEY_SIMPLEXon_video_text = text_update(frame_)     cv2.putText(frame, on_video_text, (50, 50), font, 1, (0, 255, 255),    2, cv2.LINE_4)frame_ = frame_ + 1cv2.imshow('poem on video', frame)if cv2.waitKey(1) & 0xFF == ord('q'):    breaktree_video.release()cv2.destroyAllWindows()

那么上面的代碼中發生了什么:UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

  • 我們首先從讀取視頻開始的。
  • 然后定義我們想要用于文本的字體。
  • 然后使用 text_update 來更新文本。
  • 使用 putText 方法添加視頻響應文本。
  • 使用 imshow 方法顯示視頻。

UQb28資訊網——每日最新資訊28at.com

下面是我運行程序后的截圖:UQb28資訊網——每日最新資訊28at.com

UQb28資訊網——每日最新資訊28at.com

總結

UQb28資訊網——每日最新資訊28at.com

恭喜!我們已經學習了如何使用 Python 在視頻上呈現可更新的響應文本。我希望你喜歡這個實際操作的計算機視覺項目。參與實際的編程項目是提高編程技能的最好方法。UQb28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-17408-0.html使用 Python 在視頻上渲染文本

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python這些冷門特性,當初也沒教啊

下一篇: 好用的嵌入式設備日志輸出模塊 log.h

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 滦平县| 本溪| 雷山县| 门源| 隆昌县| 西安市| 湾仔区| 游戏| 仁寿县| 莱州市| 汉川市| 屏东市| 闵行区| 洪雅县| 融水| 霸州市| 娄底市| 南投县| 司法| 宜阳县| 天峨县| 东乌珠穆沁旗| 静海县| 宿州市| 许昌县| 龙南县| 方正县| 永丰县| 吉安市| 阿坝| 泽库县| 秭归县| 福清市| 乐亭县| 云南省| 罗源县| 山丹县| 鹤壁市| 华池县| 孝昌县| 礼泉县|