Quel est le code pour convertir des images Python en dessins de personnages ?

coldplay.xixi
Libérer: 2023-01-04 09:38:37
original
5147 Les gens l'ont consulté

Code de dessin d'image Python en personnage : calculez d'abord la valeur en niveaux de gris correspondant à la couleur de l'image ; puis en fonction de la valeur en niveaux de gris, obtenez le caractère correspondant à chaque pixel de l'image à partir du jeu de caractères, le code est [args = analyseur .parse_args()].

Quel est le code pour convertir des images Python en dessins de personnages ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, python version 3.9, ordinateur DELL G3 Cette méthode convient à toutes les marques d'ordinateurs.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo Python

Principe

1. Calculez la valeur en niveaux de gris correspondant à la couleur de l'image. est la suivante

gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
Copier après la connexion

2 Selon la valeur de gris, obtenez le caractère correspondant à chaque pixel de l'image à partir du jeu de caractères

Code

# !/usr/bin/env python
# -*- coding:utf-8 -*-
from PIL import Image
import argparse
#命令行输入参数处理
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) #输出字符画高
#获取参数
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;:,\"^`&#39;. ")
def get_char(r,g,b,alpha = 256):
  """将256灰度映射到70个字符上"""
  if alpha == 0:
    return &#39; &#39;
  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__ == &#39;__main__&#39;:
  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 += &#39;\n&#39;
  print(txt)
  #字符画输出到文件
  if OUTPUT:
    with open(OUTPUT,&#39;w&#39;) as f:
      f.write(txt)
  else:
    with open("output.txt",&#39;w&#39;) as f:
      f.write(txt)z
Copier après la connexion

Résultat d'exécution

Quel est le code pour convertir des images Python en dessins de personnages ?

Quel est le code pour convertir des images Python en dessins de personnages ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal