이미지를 사용하여 마스크 처리를 위한 Wordclud 제작

11932 단어 wordcloudPython

개시하다


이 글은 이미지로 마스크 처리를 하는 단어 구름의 제작 방법을 소개했다.
파이썬 라이브러리word_cloud의 GiitHub 페이지가 예전부터 신경을 썼는데 안 해봐서 했어요.만약 잘 사용한다면 인기 있는 Infographics에 사용할 수 있을 것이다.
이번에 실시된 일.
  • WordCloud 제작
  • WordCloud 제작 + 이미지로 마스크 처리
  • WordCloud 제작 + 이미지에서 마스크 처리 + 원시 이미지의 색을 유지
  • 설치하다.


    Python 라이브러리word_cloud를 사용합니다.
    설치는 다음 명령입니다.
    명령하다
    $ pip install wordcloud
    or 
    $ conda install -c conda-forge wordcloud
    

    코드

  • 언어: 파이톤
  • 사용 라이브러리:wordcloud 등
  • GiitHub 웨어하우스: Jupter Notebook 링크
  • 다음은 함수 부분만 보여 줍니다.(전체 상태를 확인하려면Jupter Notebook 링크

    WordCloud 만들기


    각본
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud, ImageColorGenerator
    import numpy as np
    from PIL import Image
    fpath = "C:\Windows\Fonts\meiryob.ttc" # fontは任意で
    
    def get_wordcrowd( text ):
        wordcloud = WordCloud(background_color="black",
                              width=800,
                              height=600,
                              font_path=fpath,
                              collocations=False, # 単語の重複しないように
                             ).generate( text )
    
        # show
        plt.figure(figsize=(6,6), dpi=200)
        plt.imshow(wordcloud)
        plt.axis("off")
        plt.show()
    
    get_wordcrowd(text)
    
    문자운

    WordCloud 제작 + 이미지 마스크 처리


    각본
    def get_wordcrowd_mask( text, imgpath ):
        img_color = np.array(Image.open( imgpath ))
        wc = WordCloud(width=800,
                       height=600,
                       font_path=fpath,
                       mask=img_color,
                       collocations=False, # 単語の重複しないように
                      ).generate( text )
    
        # show
        plt.figure(figsize=(6,6), dpi=200)
        plt.imshow(wc, interpolation="bilinear")
        plt.axis("off")
        plt.show()
    
    get_wordcrowd_mask(text, './mask_images/Keyakizaka46_logo_2.png')
    
    마스크 이미지
    문자운


    WordCloud 생성 + 이미지 마스크 처리 + 원본 이미지 색상 보존


    각본
    def get_wordcrowd_color_mask( text, imgpath ):
        img_color = np.array(Image.open( imgpath ))
        wc = WordCloud(width=800,
                       height=600,
                       font_path=fpath,
                       mask=img_color,
                       collocations=False, # 単語の重複しないように
                      ).generate( text )
    
        image_colors = ImageColorGenerator(img_color)
    
        # show
        plt.figure(figsize=(6,6), dpi=200)
        plt.imshow(wc.recolor(color_func=image_colors), # 元画像の色を使う
                   interpolation="bilinear")
        plt.axis("off")
        plt.show()
    
    get_wordcrowd_color_mask(text, './mask_images/Keyakizaka46_logo_2.png')
    
    마스크 이미지
    문자운


    이용 예


    마스크 이미지
    문자운


    마스크 이미지
    문자운


    참고 자료

  • https://github.com/amueller/word_cloud
  • https://python-graph-gallery.com/wordcloud/
  • 좋은 웹페이지 즐겨찾기