日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

20行Python代碼實現視頻字符化功能

瀏覽:25日期:2022-07-30 10:56:31

我們經常在B站上看到一些字符鬼畜視頻,主要就是將一個視頻轉換成字符的樣子展現出來。看起來是非常高端,但是實際實現起來確是非常簡單,我們只需要接觸opencv模塊,就能很快的實現視頻字符化。但是在此之前,我們先看看我們實現的效果是怎樣的:

20行Python代碼實現視頻字符化功能

上面就是截取的一部分效果圖,下面開始進入我們的主題。

一、OpenCV的安裝及圖片讀取

在Python中我們只需要用pip安裝即可,我們在控制臺執行下列語句:

pip install opencv-python

安裝完成就可以開始使用。我們先讀取一個圖片:

import cv2im = cv2.imread(’jljt’)# 讀取圖片cv2.imshow(’im’, im)# 顯示圖片cv2.waitKey(0)# 等待鍵盤輸入cv2.destroyAllWindows()# 銷毀內存

首先我們使用cv2.imread方法讀取圖片,該方法返回一個ndarray對象。然后調用imshow方法顯示圖像,調用后會出現一個窗口,因為這個窗口只會出現一瞬間,所以我們調用waitKey等待輸入,傳入0表示無限等待。因為opencv是使用c++編寫的,所以我們需要銷毀內存。

二、OpenCV中的一些基礎操作

我們將視頻字符化的思路就是先將視頻轉換為一幀一幀的圖像,然后對圖像進行字符化處理,最后展示出來就是字符視頻的效果了。在我們生成字符畫之前,我們還要看一些OpenCV的操作。

(1)灰度轉換

灰度處理是一個非常常用的操作,我們原始的圖片是有BGR三個圖層(在OpenCV中,圖像是以BGR形式讀取)。我們進行灰度處理直觀上看就是將圖片變成黑白,而本質上是將圖片的三個圖層通過計算,變成一個圖層。而這種計算是不需要我們做的,我們只需要調用OpenCV中的函數即可:

import cv2# 讀取圖片im = cv2.imread(’jljt.jpg’)# 灰度轉換grey = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)

效果圖和原圖對比如下:

20行Python代碼實現視頻字符化功能

左邊為原圖,右邊為灰度轉換后的圖像。

(3)改變圖片大小

因為字符化后圖像會比較大,所以我們需要先縮小圖片,我們調用cv2.resize即可改變圖像大小:

import cv2# 讀取圖像im = cv2.imread(’jljt.png’)# 改變圖像大小re = cv2.resize(im, (100, 40))cv2.imshow(’11’, re)cv2.waitKey(0)cv2.destroyAllWindows()

(2)逐幀讀取視頻

我們可以通過VideoCapture讀取視頻,然后調用其中的方法讀取每一幀。

import cv2# 讀取視頻video = cv2.VideoCapture(’jljt.mp4’)# 讀取幀,該方法返回兩個參數,第一個為是否還有下一幀,第二個為幀的ndarray對象ret, frame = video.read()while ret: # 循環讀取幀 ret, frame = video.read()

有了上面的操作,我們就可以開始我們下一步的工作了。

三、圖片字符化

對于只有一個通道的圖片,我們可以把它當成一個矩形,這個矩形最小單位就是一個像素。而字符化的過程就是用字符替代像素點的過程。所以我們要遍歷圖像的每個像素點,但是我們應該用什么字符取代呢?

我們顏色有一個參照表,而opencv將這個參數表切割成256份,代表不同的程度,我們也可以做一個參照表,不過表中的內容不是顏色,而是字符。

20行Python代碼實現視頻字符化功能

上圖為顏色表,我們可以使顏色表和字符表建立映射關系。假如字符表如下:

mqpka89045321@#$%^&*()_=||||}

我們可以得到下列公式:

20行Python代碼實現視頻字符化功能

經過變換可以求得相應顏色對應字符表中的字符:

20行Python代碼實現視頻字符化功能

這個公式不理解也沒關系,只需要會用即可。下面就是我們完整的代碼了:

import cv2str = ’mqpka89045321@#$%^&*()_=||||}’ # 字符表im = cv2.imread(’jljt.jpg’)# 讀取圖像grey = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)# 灰度轉換grey = cv2.resize(grey, (50, 18))# 縮小圖像str_img = ’’# 用于裝字符畫for i in grey:# 遍歷每個像素 for j in i: index = int(j / 256 * len(str))# 獲取字符坐標 str_img += str[index]# 將字符添加到字符畫中 str_img += ’n’print(str_img)

生成如下字符畫:

20行Python代碼實現視頻字符化功能

因為尺寸比較小的關系,看出來的效果不是很好,我們調節好大小就好了。

四、視頻轉字符

我們知道圖片轉字符,自然視頻轉字符就不是什么問題了,我們只需要在逐幀讀取中執行圖片字符化操作即可。

import osimport cv2str = ’mqpka89045321@#$%^&*()_=||||}’# 字符表video = cv2.VideoCapture(’jljt.mp4’) # 讀取視頻ret, frame = video.read()# 讀取幀while ret:# 逐幀讀取 str_img = ’’# 字符畫 grey = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)# 灰度轉換 grey = cv2.resize(grey, (100, 40))# 該表大小 for i in grey:# 遍歷每個像素點 for j in i: index = int(j / 256 * len(str))# 獲取字符坐標 str_img += str[index]# 將字符添加到字符畫中 str_img += ’n’ os.system(’cls’)# 清除上一幀輸出的內容 print(str_img)# 輸出字符畫 ret, frame = video.read()# 讀取下一幀 cv2.waitKey(5)

這樣我們就會每個5毫秒執行一幀畫面,在我們使用pycharm執行時,會發現并沒有執行清屏操作,所以我們需要到命令行運行。最終效果就是我們的字符視頻了:

20行Python代碼實現視頻字符化功能

在選取字符表時我們需要注意主體的顏色,如果主體顏色較淺,則字符表的尾部應該為一些復雜字符,如:$%#@&。字符表頭部為一些簡單字符,如:-|/等。如果主體顏色較深,而背景顏色較淺,則反之。當然這沒有唯一的標準,大家可以慢慢調節。

總結

到此這篇關于20行Python代碼實現視頻字符化的文章就介紹到這了,更多相關python 視頻字符化內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区中文字幕| 夜夜嗨网站十八久久| 国产极品一区| 亚洲精品伊人| 免费在线观看精品| 亚洲成人一区| 亚洲1234区| 国产日韩电影| 91精品婷婷色在线观看| 99久久精品费精品国产| 四虎4545www国产精品| 久久国产成人午夜av影院宅| 亚洲第一精品影视| 国产精品老牛| 欧美 日韩 国产精品免费观看| 欧洲av一区二区| 免费观看久久av| 午夜在线精品| 日韩高清成人在线| 国产精品极品国产中出| 美女视频网站久久| 成人综合一区| 韩国精品主播一区二区在线观看 | 国产精品丝袜xxxxxxx| 一区在线免费观看| 免费在线视频一区| 日韩不卡在线观看日韩不卡视频| 国产麻豆综合| 婷婷综合国产| 国产91久久精品一区二区| 日韩精品水蜜桃| 超级白嫩亚洲国产第一| 亚洲精品88| 偷拍欧美精品| 水蜜桃久久夜色精品一区的特点| 日本一区二区三区中文字幕| 国产精品一在线观看| 精品一区二区三区中文字幕视频| 久久久久久色| 久久99国产精品视频| 亚洲成人一区在线观看| 最新亚洲一区| 97久久超碰| 欧美亚洲三区| 麻豆成全视频免费观看在线看| japanese国产精品| 亚洲精品自拍| 精品久久久网| 日韩视频精品在线观看| 日本不卡视频一二三区| 国产精品国产一区| 天堂成人国产精品一区| 国产免费av国片精品草莓男男 | 麻豆一区二区在线| 欧美色图一区| 免费成人性网站| 亚洲精品激情| 精品中文字幕一区二区三区| 丝袜美腿亚洲一区二区图片| 在线亚洲观看| 日本a级不卡| 久久精品国内一区二区三区| 999久久久免费精品国产| 日韩手机在线| 欧美日韩免费看片| 日本在线一区二区三区| 91一区二区| 亚洲va久久久噜噜噜久久| 精品理论电影在线| 国产视频一区三区| 老色鬼精品视频在线观看播放| 国产激情在线播放| 97国产成人高清在线观看| 首页国产欧美久久| 久久久久免费| 亚洲97av| 久久久噜噜噜| 国产精品免费不| 亚洲一区二区三区高清| 麻豆成人av在线| 亚洲色图国产| 电影亚洲精品噜噜在线观看| 色狠狠一区二区三区| 99tv成人| 精品国产麻豆| 欧美亚洲tv| 中文一区在线| 高清av不卡| 日韩极品在线观看| 91精品国产乱码久久久久久久 | 日韩欧美在线中字| 日本精品另类| 日韩精品一级中文字幕精品视频免费观看 | 日韩精品一区二区三区中文在线| 国际精品欧美精品| 三级在线观看一区二区| 日韩av在线中文字幕| 亚洲在线免费| 国产一区二区三区国产精品| 免费在线欧美视频| 美女精品一区二区| 精品一区在线| 成人午夜国产| 国产精品久久久久久久久久齐齐| 久久三级中文| 视频一区视频二区在线观看| 99综合视频| 国产成人精品亚洲日本在线观看| 欧美激情福利| 欧美日韩 国产精品| 久久久精品区| 99久久夜色精品国产亚洲狼 | 精品视频网站| 伊人影院久久| 97精品在线| 青青草91视频| 婷婷综合五月| 国产色播av在线| 国产精品激情电影| 黄色在线一区| 在线视频精品| 色综合www| 国产精品一区亚洲| 伊人久久大香伊蕉在人线观看热v| 成人精品天堂一区二区三区| 国产色播av在线| 日韩高清不卡一区二区| 国产精品黄网站| 中文在线а√天堂| 91麻豆精品| 日韩在线短视频| 日韩毛片一区| 99精品网站| 成人在线观看免费视频| 久久wwww| 天堂av在线一区| 91精品日本| 国精品产品一区| 日韩一区二区三区免费视频| 国产精品久久久网站| 国产伦精品一区二区三区千人斩| www在线观看黄色| 免费国产自久久久久三四区久久| 精品网站999| 国产日韩三级| 成人高清一区| 国产精品中文字幕制服诱惑| 秋霞影视一区二区三区| 四虎国产精品免费观看| 在线视频精品| 红桃视频亚洲| 91免费精品| 欧美日韩国产在线一区| 激情欧美一区二区三区| 日韩av在线播放网址| 亚洲一本视频| 国产一区二区三区亚洲| 亚洲精品日本| 蜜臀av亚洲一区中文字幕| 亚洲一区欧美二区| 国产调教一区二区三区| 韩日一区二区| 国产调教精品| 免费久久99精品国产| 高清一区二区三区av| 国产拍在线视频| 91综合视频| 国产视频亚洲| 国产视频网站一区二区三区| 精品国产a一区二区三区v免费| 久久婷婷av| 91成人精品| 午夜性色一区二区三区免费视频| 国产精品视频一区视频二区| 91精品xxx在线观看| 日本伊人久久| 午夜久久久久| 日本三级亚洲精品| 国产一区日韩| 欧美日韩精品一区二区三区视频 | 日韩激情中文字幕| 国产精品多人| 亚洲成av人片一区二区密柚| 中文字幕免费一区二区| 国产精品1区| 精品久久电影| 国产图片一区| 一区在线观看| 韩国久久久久久| 香蕉成人av| 国产精品xvideos88| 国产精品黄网站| 美腿丝袜在线亚洲一区| 国产精品久久久免费| 久久亚洲资源中文字| 中文字幕在线看片| 亚洲少妇自拍| 中文一区一区三区免费在线观 | 极品日韩av| 免费在线观看日韩欧美|