欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)圖片轉字符畫的代碼實例

 更新時間:2019年02月22日 14:04:23   作者:topleeyap  
今天小編就為大家分享一篇關于Python實現(xiàn)圖片轉字符畫的代碼實例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

原理

1. 計算出圖片顏色對應的灰度值,計算公式如下

    gray = 0.2126 * r + 0.7152 * g + 0.0722 * b

2. 根據(jù)灰度值,從字符集中獲取圖片中每個像素點對應的字符

代碼

# !/usr/bin/env python
# -*- coding:utf-8 -*-
from PIL import Image
import argparse
#命令行輸入?yún)?shù)處理
parser = argparse.ArgumentParser()
parser.add_argument('file')   #輸入文件
parser.add_argument('-o', '--output')  #輸出文件
parser.add_argument('--width', type = int, default = 50) #輸出字符畫寬
parser.add_argument('--height', type = int, default = 50) #輸出字符畫高
#獲取參數(shù)
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
# 字符畫使用的字符集
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
def get_char(r,g,b,alpha = 256):
  """將256灰度映射到70個字符上"""
  if alpha == 0:
    return ' '
  length = len(ascii_char)
  # 計算灰度的公式
  gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
  unit = (256.0 + 1)/length
  index=int(gray/unit)
  return ascii_char[index]
if __name__ == '__main__':
  im = Image.open(IMG)
  im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
  txt = ""
  # 獲取每個像素點對應的字符
  for i in range(HEIGHT):
    for j in range(WIDTH):
      txt += get_char(*im.getpixel((j,i)))
    txt += '\n'
  print(txt)
  #字符畫輸出到文件
  if OUTPUT:
    with open(OUTPUT,'w') as f:
      f.write(txt)
  else:
    with open("output.txt",'w') as f:
      f.write(txt)z

運行結果

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • 使用python實現(xiàn)mqtt的發(fā)布和訂閱

    使用python實現(xiàn)mqtt的發(fā)布和訂閱

    這篇文章主要介紹了使用python實現(xiàn)mqtt的發(fā)布和訂閱,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 使用python求解二次規(guī)劃的問題

    使用python求解二次規(guī)劃的問題

    今天小編就為大家分享一篇使用python求解二次規(guī)劃的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 分析python動態(tài)規(guī)劃的遞歸、非遞歸實現(xiàn)

    分析python動態(tài)規(guī)劃的遞歸、非遞歸實現(xiàn)

    本文小編給大家詳細分析了python動態(tài)規(guī)劃的遞歸、非遞歸實現(xiàn)過程以及相關代碼,有興趣的朋友可以學習下。
    2018-03-03
  • python實現(xiàn)簡單socket程序在兩臺電腦之間傳輸消息的方法

    python實現(xiàn)簡單socket程序在兩臺電腦之間傳輸消息的方法

    這篇文章主要介紹了python實現(xiàn)簡單socket程序在兩臺電腦之間傳輸消息的方法,涉及Python操作socket的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 關于數(shù)據(jù)分析Pandas的Series用法總結

    關于數(shù)據(jù)分析Pandas的Series用法總結

    這篇文章主要介紹了關于數(shù)據(jù)分析Pandas的Series用法總結,Series序列,是一種一維的結構,類似于一維列表和ndarray中的一維數(shù)組,但是功能比他們要更為強大,Series由兩部分組成:索引index和數(shù)值values,本篇對其用法做出總結
    2023-07-07
  • 詳解python selenium 爬取網(wǎng)易云音樂歌單名

    詳解python selenium 爬取網(wǎng)易云音樂歌單名

    這篇文章主要介紹了python selenium爬取網(wǎng)易云音樂歌單名,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 基于OpenCV的直方圖匹配的實現(xiàn)方法

    基于OpenCV的直方圖匹配的實現(xiàn)方法

    這篇文章主要介紹了基于OpenCV的直方圖匹配的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 淺談python和C語言混編的幾種方式(推薦)

    淺談python和C語言混編的幾種方式(推薦)

    下面小編就為大家?guī)硪黄獪\談python和C語言混編的幾種方式(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • python中np.random.permutation函數(shù)實例詳解

    python中np.random.permutation函數(shù)實例詳解

    np.random.permutation是numpy中的一個函數(shù),它可以將一個數(shù)組中的元素隨機打亂,返回一個打亂后的新數(shù)組,下面這篇文章主要給大家介紹了關于python中np.random.permutation函數(shù)的相關資料,需要的朋友可以參考下
    2023-04-04
  • 深入理解Python中裝飾器的用法

    深入理解Python中裝飾器的用法

    裝飾器的使用是Python的高級技巧之一,通過Decorator裝飾器能夠帶來函數(shù)式編程中所需的很多特性,這里我們就來跟隨文章一同深入理解Python中裝飾器的用法,需要的朋友可以參考下
    2016-06-06

最新評論