「さはら3」です。
AI副業でどこまでいけるのか?をテーマに頑張っていきたいと思います。
いつも読んで頂きありがとうございます。
最初に
さて、今回はショート動画などでよく見る
「沢山の漢字の中に似た漢字がどこかにある画像」を生成できないかと
ChatGPTさんに聞いてみて、Pythonスクリプトでできましたので、ご紹介いたします。
成果物(問題)
- 上記問題の解答は本記事の一番下に置いておきます。
完成したPythonスクリプト
import os import csv import random from PIL import Image, ImageDraw, ImageFont # CSVファイルから漢字のペアを読み込む with open(r'C:\Users\Any\Downloads\Kanji\kanji_pairs.csv', 'r', encoding='utf-8') as file: reader = csv.reader(file) kanji_pairs = list(reader) # 画像のサイズとフォントの設定 width, height = 1600, 1600 font_size = 120 font_path = r"C:\Windows\Fonts\YuGothB.ttc" font = ImageFont.truetype(font_path, font_size) # センタリングのためのオフセットを計算 offset_x = (width - (font_size * 10)) / 2 offset_y = (height - (font_size * 10)) / 2 spacing = font_size + 2 # 各漢字のペアに対して画像を生成 for pair in kanji_pairs: # ランダムな位置に赤色の漢字を配置 random_row = random.randint(0, 9) random_col = random.randint(0, 9) # 問題用の画像を作成 image_question = Image.new("RGB", (width, height), "white") draw_question = ImageDraw.Draw(image_question) x, y = offset_x, offset_y for row in range(10): for col in range(10): if row == random_row and col == random_col: draw_question.text((x, y), pair[1], font=font, fill="black") else: draw_question.text((x, y), pair[0], font=font, fill="black") x += spacing x = offset_x y += spacing image_name_question = f"{pair[0]}_{pair[1]}_1.png" save_path_question = os.path.join(r"C:\Users\Any\Downloads\Kanji", image_name_question) image_question.save(save_path_question) # 回答用の画像を作成 image_answer = Image.new("RGB", (width, height), "white") draw_answer = ImageDraw.Draw(image_answer) x, y = offset_x, offset_y for row in range(10): for col in range(10): if row == random_row and col == random_col: draw_answer.text((x, y), pair[1], font=font, fill="red") else: draw_answer.text((x, y), pair[0], font=font, fill="black") x += spacing x = offset_x y += spacing image_name_answer = f"{pair[0]}_{pair[1]}_2.png" save_path_answer = os.path.join(r"C:\Users\Any\Downloads\Kanji", image_name_answer) image_answer.save(save_path_answer) print("All images have been generated and saved!")
生成条件
- 画像サイズは1600x1600
- フォントは「游ゴシックのBold」
- 漢字数は10x10=100文字
- 1文字だけ似た漢字をランダムに配置
- 問題用に「漢字ペア1.png」、回答用に「漢字ペア2.png」として保存
- 漢字群をセンタリングする
- 'kanji_pairs.csv'を読み込んで、一括で画像を生成
- 'kanji_pairs.csv'には「見,貝」の様にカンマ区切りで保存
いかがでしたでしょうか?
実際に動かしてみると、100枚ぐらいの画像が18秒で完成します。
是非皆さんも作ってみてください。
解答
* 初出時、解答画像を間違えておりました。 訂正いたします。
AI関連は日進月歩、日々之精進でございます。
最後まで読んで頂きありがとうございました。
AIさはら
本日のAI着物美女withアニマルズ
良かったらInstagramのフォローをお願いします。
https://www.instagram.com/ai_kimono_bijo/
非アダルトで運営しておりますので、職場でも安心して堪能いただけます。