簡単な画像処理コードをChatGPTに作ってもらった
手書きの絵をスキャンしたけど、いい感じの画像編集ソフト持ってないし編集できない...
そんな人(ぼくです)のために、ChatGPTで画像編集のPythonコードを作成する方法を紹介します。
今回は、このサイトのアイコン画像を作成した時の方法を題材にします。
今回やろうとしている画像編集操作は?
この手書きの絵を白黒逆にして、元々白だった部分を透過画像にしたい!というのを題材にしようと思います。
実際にこのサイトのアイコン画像を作るときにやったことです。
ChatGPTにどんなふうにお願いした?
こんな感じでお願いしました。
以下の処理を行うpillowを用いたPythonコードを作成してください。
# 処理
1. 画像(icon_black.png)を読み込み、aと定義する
2. aを輝度150を閾値として二値化し、bと定義する
3. bを白黒反転させ、cと定義する
4. cにおいて黒い領域を透過色に変更し、dと定義する
5. dを icon_white.png として出力する
すると、1回のお願いでちゃんと動くコードを返してくれました。
こちらがその時のやり取りになります。
プログラムをイメージした日本語を書くと精度上がりますね。
from PIL import Image
# 画像を読み込む
a = Image.open("icon_black.png")
# 二値化する
b = a.convert("L").point(lambda x: 255 if x > 150 else 0, mode='1')
# 白黒反転する
c = Image.eval(b, lambda x: 255 - x)
# 透過色に変更する
d = c.convert("RGBA")
data = d.getdata()
new_data = []
for item in data:
# 黒い領域を透過色に変更
if item[0] == 0 and item[1] == 0 and item[2] == 0:
new_data.append((255, 255, 255, 0))
else:
new_data.append(item)
d.putdata(new_data)
# 出力する
d.save("icon_white.png")
でも輝度とか二値化とかの用語を知らない場合はどうすればいいの! と思う方もいらっしゃると思います。
.......そういう人のための記事もいずれ書いていこうと思います。
余談
以前有償の画像処理ソフトを仕事で 使わされた 使ったことがあるんですが、ほぼPythonでささっと実装できる内容だったことを覚えています。
用語と実装を知っているだけで結構節約になりますね~
まとめ
いい感じの画像編集ソフトを持ってない人のために、ChatGPTで画像編集のPythonコードを作成する方法を紹介しました。
何かの参考になればいいなと思います。