ホームページ  >  記事  >  バックエンド開発  >  Pythonを使って写真をキャラクター絵に変換する方法

Pythonを使って写真をキャラクター絵に変換する方法

王林
王林転載
2023-05-17 14:34:061640ブラウズ

まず第一に、グレースケールをシミュレートするという問題があります。式は次のとおりです:

1
Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B
##これで扱いやすくなります。もちろん、RGB モードでは、256x256x256 の色範囲が 256 のグレースケール範囲に変換されますが、文字は依然として 1 対 1 対応ではありません。この問題は、1 つの文字を複数のグレースケールに対応させることで解決できます。

最初に次のような PIL ライブラリをインストールすることを忘れないでください。

Python 2 の場合は、

pip install PIL を実行します。

Python 3 の場合は、

pip installpillow を実行します。

コードに直接進みましょう:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from PIL import Image
#设置显示的字符集
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`&#39;. ")    
WIDTH = 130
HEIGHT = 50
def get_char(r,g,b,alpha = 256):
    if alpha == 0:
        return &#39; &#39;
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
    unit = (255.0 + 1)/length
    return ascii_char[int(gray/unit)]
if __name__ == &#39;__main__&#39;:
    img = "E:/WindowsDocuments/G7/Desktop/1.png"
    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)
ファイルに出力したい場合は、定義部分

OUTPUT = 'output.txt' に保存したいファイル名を追加し、最後に # と記述します。

##
1
2
ついに、これが得られました:
with open(OUTPUT, &#39;w&#39;) as f:
    f.write(txt)

以上がPythonを使って写真をキャラクター絵に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。