<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你如何繪制自己的跳舞詞云圖~

          共 3677字,需瀏覽 8分鐘

           ·

          2022-02-22 18:38

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          卻嫌脂粉污顏色,淡掃蛾眉朝至尊。
          大家好,我是志斌~


          上次做了一個跳舞的詞云圖,大家感覺很不錯,都想學(xué)習(xí)一下做法,志斌今天就來跟大家分享一下如何制作跳舞的詞云圖。



          01

          下載視頻


          首先我們要先準(zhǔn)備一個熱舞視頻,從哪里下載的都可以,我是用You-Get從B站上下載的,命令如下:

          you-get url



          you-get是第三方庫,需要讀者用pip進(jìn)行手動安裝,它的更多用法可以看看這篇文章下載全網(wǎng)音視頻資源的神器—You-get。


          02

          分割視頻


          下載好視頻后,我們要對其進(jìn)行分割處理,將其變成一張一張的圖片,代碼如下:

          import cv2
          vc = cv2.VideoCapture(r'美女跳舞視頻.flv') # 讀取視頻文件
          n = 1 # 計(jì)數(shù)
          a, b = vc.read()
          timeF = 10 # 視頻幀計(jì)數(shù)間隔頻率
          num = 0
          while a: # 循環(huán)讀取視頻幀
          a, b = vc.read()
          if (n % timeF == 0): # 每隔timeF幀進(jìn)行存儲操作
          num += 1
          cv2.imwrite(f'{num}.jpg',b) # 存儲為圖像
          n += 1
          cv2.waitKey(1)
          vc.release()


          讓我們來看看效果:


          03

          人物摳像


          視頻現(xiàn)在已經(jīng)分割成一張一張的圖片了,我們要把人物給摳出來,這樣方便我們進(jìn)行詞云圖繪制。


          這里我是借用的百度API進(jìn)行人物摳像,下面我們來看一下如何使用百度API。


          首先,我們先打開百度AI界面,然后點(diǎn)擊控制臺。



          跳轉(zhuǎn)到登陸界面后,輸入賬號密碼后,跳轉(zhuǎn)到管理界面,此時我們點(diǎn)擊人體分析。進(jìn)入到人體分析應(yīng)用界面。


          然后創(chuàng)建一個應(yīng)用(如已創(chuàng)建好,就點(diǎn)擊管理應(yīng)用)。


          創(chuàng)建好后,進(jìn)入到應(yīng)用列表中,記下來‘AppID’、‘API Key’、‘Secret Key’這三個參數(shù)的值。在后面對API進(jìn)行調(diào)用的時候需要用到這三個參數(shù)。


          接下來,我們就可以開始調(diào)用API了,代碼如下:

          """ 讀取圖片 """
          def get_file_content(filePath):
          with open(filePath, 'rb') as fp:
          return fp.read()image = get_file_content('example.jpg')
          """ 調(diào)用人像分割 """
          client.bodySeg(image);
          """ 如果有可選參數(shù) """
          options = {}
          options["type"] = "labelmap"
          """ 帶參數(shù)調(diào)用人像分割 """
          client.bodySeg(image, options)


          我們來看一下效果:

          (來源:百度AI)


          我們使用的代碼如下:

          APP_ID = '你的APP_ID'
          API_KEY = '你的API_KEY'
          SECRET_KEY = '你的SECRET_KEY'
          client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)
          path = r'美女跳舞視頻'
          img_files = os.listdir(r'img')
          print(img_files)
          for num in range(2, len(img_files) + 1):
          img = f'img_{num}.jpg'
          img_1 = cv2.imread(img)
          height, width = img_1.shape[:2]
          with open(img, 'rb') as fp:
          img_info = fp.read()
          seg_res = client.bodySeg(img_info)
          labelmap = base64.b64decode(seg_res['labelmap'])
          nparr = np.frombuffer(labelmap, np.uint8)
          labelimg = cv2.imdecode(nparr, 1)
          labelimg = cv2.resize(labelimg, (width, height), interpolation = cv2.INTER_NEAREST)
          new_img = np.where(labelimg == 1, 255, labelimg)
          mask_name = path + 'mask_{}.png'.format(num)
          cv2.imwrite(mask_name,new_img)


          讓我們來看看效果,感覺還不錯:


          04

          詞云繪制


          現(xiàn)在人物也出來了,我們可以開始進(jìn)行詞云的繪制了,這里我們使用的是上次從抖音視頻上爬取下來的評論,讀者也可以替換成自己的評論,代碼如下:

          for num in range(1,23):
          with open("comment.txt", 'r') as f:
          job_title_1 = f.read()
          contents_cut_job_title = jieba.cut(job_title_1)
          contents_list_job_title = " ".join(contents_cut_job_title)
          img = f'mask_{num}.png'
          mask = 255 - np.array(Image.open(img)) # 相互轉(zhuǎn)化
          wc = WordCloud(stopwords=STOPWORDS.add("一個"), collocations=False,
          background_color="white",
          font_path=r"K:\msyh.ttc",
          width=400, height=300, random_state=42,
          mask=mask
          )
          wc.generate(contents_list_job_title)
          wc.to_file(f"ciyun_{num}.png")


          讓我們來看看效果:


          05

          合成視頻


          詞云圖做好了,我們現(xiàn)在要將他們合成一個視頻,這樣就可以實(shí)現(xiàn)其跳舞的特效啦,代碼如下:

          import cv2
          video_address = 'tiaowu.mp4' # 輸出視頻的保存路徑
          fps = 20 # 幀率,可以調(diào)整
          img_size = (1080, 1920) # 圖片的大小
          fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V')
          videoWriter = cv2.VideoWriter(video_address , fourcc, fps, img_size)
          for num in range(1,23):
          img_path = f'ciyun_{num}.png'
          frame = cv2.resize(cv2.imread(img_path), img_size)
          videoWriter.write(frame) # 合成視頻
          videoWriter.release()


          來看一下效果:


          06

          小結(jié)


          1. 本文詳細(xì)介紹了如何制作一款跳舞的詞云圖,有興趣的讀者可以嘗試自己動手實(shí)驗(yàn)一下。

          2. 本文繪制詞云圖的操作是最基本的,其實(shí)還可以更優(yōu),有興趣的讀者可以看看這篇文章基于微博評論的文本情感分析與關(guān)鍵詞提取的實(shí)戰(zhàn)案例~。

          3. 讓詞云圖繪制在人像中,要讓PIL.Image與numpy.array之間進(jìn)行相互轉(zhuǎn)換。

          4. 本文僅供學(xué)習(xí)參考,不做它用。

          小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。

          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群

          萬水千山總是情,點(diǎn)個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~

          瀏覽 79
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩成人在线视频 | 波动野结衣网站 | 在线看A片 | 黄色片在线免费观看 | 日韩AV三级在线观看 |