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

王林
リリース: 2023-05-17 14:34:06
転載
1653 人が閲覧しました

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

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート