欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Python 一鍵生成漂亮的生日快樂(lè)詞云

汽車電子技術(shù) ? 來(lái)源:Python實(shí)用寶典 ? 作者:Ckend ? 2023-02-23 15:36 ? 次閱讀

1.準(zhǔn)備

開(kāi)始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:超詳細(xì)Python安裝指南進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南)。

請(qǐng)選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開(kāi) Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install wordcloud == 1.5.0
pip install scipy == 1.1.0
pip install multidict == 4.5.2
pip install matplotlib == 2.2.4
pip install fire == 0.2.1
pip install numpy == 1.16.4

看到 Successfully installed xxx 則說(shuō)明安裝成功。或公眾號(hào)后臺(tái)回復(fù)生日快樂(lè)可獲得本文全部代碼,然后進(jìn)入文件夾,輸入一行命令安裝所有依賴:

pip install -r requirements.txt

如果你不想折騰代碼,安裝完依賴后,輸入以下命令就可以生成你的詞云:

python birthday.py 圖片位置 對(duì)象姓名

如:

python birthday.py example.png 寶典哥

2.編寫代碼

首先是引入詞云對(duì)象,并初始化【生日快樂(lè)】和對(duì)方姓名:

words = multidict.MultiDict()
# 生日快樂(lè)和姓名的權(quán)重必須先初始化兩個(gè)最大權(quán)重的
words.add('生日快樂(lè)', 10)
words.add(name, 12)

細(xì)心的讀者可能發(fā)現(xiàn)了,我們?cè)谶@里用了MultiDict,這主要是因?yàn)閣ordcloud只允許接受【字典】數(shù)據(jù)結(jié)構(gòu),而Python內(nèi)置的字典不允許重復(fù)值,所以我們只能引入multidict模塊。

然后是插入新的生日快樂(lè)詞云和對(duì)方姓名:

# 隨意插入新的詞語(yǔ)
for i in range(1000):
    words.add('生日', numpy.random.randint(1, 5))
    words.add('快樂(lè)', numpy.random.randint(1, 5))
    words.add(name, numpy.random.randint(1, 5))

然后我們需要對(duì)圖片進(jìn)行一些處理,現(xiàn)在網(wǎng)絡(luò)上的圖片很多都包含一些雜色,因此需要把這些雜色去掉:

def transform_format(val):
    """
    用于去除雜色

    Args:
        val (list): RGB顏色組

    Returns:
        list: 去除雜色后的組
    """
    if val[0] > 245 and val[1] > 245 and val[2] > 245:
        val[0] = val[1] = val[2] = 255
        return val
    else:
        return val

引入圖片,去除雜色:

# 設(shè)定圖片
bimg = imread(file)
for color in range(len(bimg)):
    bimg[color] = list(map(transform_format, bimg[color]))
    
wordcloud = WordCloud(
    background_color='white', mask=bimg,
    font_path='simhei.ttf'
).generate_from_frequencies(words)

生成詞云并渲染:

# 生成詞云
bimgColors = ImageColorGenerator(bimg)

# 渲染詞云
plt.axis("off")
plt.imshow(wordcloud.recolor(color_func=bimgColors))
plt.savefig(name+'.png')
plt.show()

完整代碼如下:

# coding:utf-8
# Python 實(shí)用寶典
# 2021/08/01
import numpy
import fire
import multidict
import matplotlib.pyplot as plt
from scipy.misc import imread
from wordcloud import WordCloud, ImageColorGenerator


def transform_format(val):
    """
    用于去除雜色

    Args:
        val (list): RGB顏色組

    Returns:
        list: 去除雜色后的組
    """
    if val[0] > 245 and val[1] > 245 and val[2] > 245:
        val[0] = val[1] = val[2] = 255
        return val
    else:
        return val


def gen_happy_birthday_cloud(file, name):
    """
    生成生日快樂(lè)詞云

    Args:
        file (str): 詞云背景圖
        name (str)): 對(duì)方的姓名
    """
    words = multidict.MultiDict()
    # 生日快樂(lè)和姓名的權(quán)重必須先初始化兩個(gè)最大權(quán)重的
    words.add('生日快樂(lè)', 10)
    words.add(name, 12)

    # 隨意插入新的詞語(yǔ)
    for i in range(1000):
        words.add('生日', numpy.random.randint(1, 5))
        words.add('快樂(lè)', numpy.random.randint(1, 5))
        words.add(name, numpy.random.randint(1, 5))

    # 設(shè)定圖片
    bimg = imread(file)
    for color in range(len(bimg)):
        bimg[color] = list(map(transform_format, bimg[color]))

    wordcloud = WordCloud(
        background_color='white', mask=bimg,
        font_path='simhei.ttf'
    ).generate_from_frequencies(words)

    # 生成詞云
    bimgColors = ImageColorGenerator(bimg)

    # 渲染詞云
    plt.axis("off")
    plt.imshow(wordcloud.recolor(color_func=bimgColors))
    plt.savefig(name+'.png')
    plt.show()


fire.Fire(gen_happy_birthday_cloud)

3.整合一句運(yùn)行

接下來(lái),我們使用上次提到的 [一行命令實(shí)現(xiàn)功能將這個(gè)功能打包成輸入命令就能運(yùn)行的程序,比如:

python birthday.py 圖片 寶典哥

嘛,在完整代碼最后面加一行語(yǔ)句就行了:

import fire

fire.Fire(gen_happy_birthday_cloud)

當(dāng)然,別忘了還要import fire模塊。

最后實(shí)驗(yàn)一下:

python birthday.py example.png 寶典哥

怎么樣,效果不錯(cuò)吧?喜歡的話記得點(diǎn)一個(gè)在看哦!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 安裝
    +關(guān)注

    關(guān)注

    2

    文章

    98

    瀏覽量

    22366
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4809

    瀏覽量

    85069
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【proteus練練2.17】播放生日快樂(lè)音樂(lè)

    /*名稱:播放音樂(lè) 說(shuō)明:程序運(yùn)行時(shí)播放生日快樂(lè)歌,未使用定時(shí)器中斷,所有頻率完全用延時(shí)實(shí)現(xiàn) */ #include #define uchar unsigned char #define uint
    發(fā)表于 02-17 11:07

    求助“基于stc51單片機(jī)的生日快樂(lè)歌”

    誰(shuí)有用51單片機(jī)驅(qū)動(dòng)蜂鳴器響“生日快樂(lè)”曲調(diào)的c程序啊。跪求大神幫忙、、、
    發(fā)表于 09-25 17:45

    如何用單片機(jī) 唱生日快樂(lè)

    本帖最后由 eehome 于 2013-1-5 09:58 編輯 菜鳥不懂,求大家?guī)兔?如何用單片機(jī) 控制唱生日快樂(lè)歌,都要哪些元件?是用蜂鳴器有源的還是無(wú)源的還是用什么揚(yáng)聲器什么的,具體怎么控制,求PCB圖啊,最好 有個(gè)仿真 的還有C程序啊,謝謝
    發(fā)表于 12-11 17:40

    生日快樂(lè)的音樂(lè)代碼

    想用單片機(jī)控制蜂鳴器,使得蜂鳴器演奏生日快樂(lè)這首歌,希望能得到生日快樂(lè)這首歌的音樂(lè)代碼
    發(fā)表于 04-11 19:19

    蜂鳴器演奏生日快樂(lè)

    []={212,212,190,212,159,169,212,212,190,212,142,159,//生日快樂(lè)歌的音符頻率表,不同頻率由不同的延時(shí)來(lái)決定212,212,106,126,159,169,190,119,119,126,159,142,159,0};uchar code
    發(fā)表于 08-18 16:54

    怎么實(shí)現(xiàn)單片機(jī)控制蜂鳴器唱生日快樂(lè)歌曲?

    怎么實(shí)現(xiàn)單片機(jī)控制蜂鳴器唱生日快樂(lè)歌曲?
    發(fā)表于 09-28 07:49

    51單片機(jī)是如何實(shí)現(xiàn)播放生日快樂(lè)歌的

    51單片機(jī)是如何實(shí)現(xiàn)播放生日快樂(lè)歌的?其電路及代碼該如何去實(shí)現(xiàn)?
    發(fā)表于 10-28 06:22

    能聲控發(fā)出祝你生日快樂(lè)歌的電路

    能聲控發(fā)出祝你生日快樂(lè)歌的電路
    發(fā)表于 04-13 17:42 ?25次下載
    能聲控發(fā)出祝你<b class='flag-5'>生日快樂(lè)</b>歌的電路

    555觸摸式生日快樂(lè)樂(lè)曲電路

    555觸摸式生日快樂(lè)樂(lè)
    發(fā)表于 05-20 21:37 ?1969次閱讀
    555觸摸式<b class='flag-5'>生日快樂(lè)</b>樂(lè)曲電路

    祝你生日快樂(lè)電子蠟燭電路圖

    祝你生日快樂(lè)電子蠟燭電路圖
    發(fā)表于 05-30 16:25 ?1873次閱讀
    祝你<b class='flag-5'>生日快樂(lè)</b>電子蠟燭電路圖

    單片機(jī)蜂鳴器 生日快樂(lè) 【匯編版】

    單片機(jī)蜂鳴器 生日快樂(lè) 【匯編版】單片機(jī)蜂鳴器 生日快樂(lè) 【匯編版】單片機(jī)蜂鳴器 生日快樂(lè) 【匯編版】單片機(jī)蜂鳴器 生日快樂(lè) 【匯編版】
    發(fā)表于 12-29 13:53 ?0次下載

    基于STM32單片機(jī)的生日快樂(lè)音頻播放程序設(shè)計(jì)的詳細(xì)資料概述

    本文的主要內(nèi)容介紹的是基于STM32的生日快樂(lè)播放程序設(shè)計(jì)的詳細(xì)資料概述
    發(fā)表于 06-07 08:00 ?29次下載

    arduino生日快樂(lè)蜂鳴器

    電子發(fā)燒友網(wǎng)站提供《arduino生日快樂(lè)蜂鳴器.zip》資料免費(fèi)下載
    發(fā)表于 10-26 11:44 ?1次下載
    arduino<b class='flag-5'>生日快樂(lè)</b>蜂鳴器

    使用Arduino的生日快樂(lè)旋律

    電子發(fā)燒友網(wǎng)站提供《使用Arduino的生日快樂(lè)旋律.zip》資料免費(fèi)下載
    發(fā)表于 11-07 11:12 ?1次下載
    使用Arduino的<b class='flag-5'>生日快樂(lè)</b>旋律

    使用Arduino Uno的生日快樂(lè)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Uno的生日快樂(lè)音.zip》資料免費(fèi)下載
    發(fā)表于 12-15 10:10 ?5次下載
    使用Arduino Uno的<b class='flag-5'>生日快樂(lè)</b>音