フォルダ内のすべてのファイルに追加
ここをクリックしてください
上の画像が下の画像のようになります。
ファイルが読み込まれない場合はフォルダ名を確認してください。日本語のフォルダ名はダメです。フォルダ名がキャラチップだとエラーが出ます。サイズが違うのもダメです。大きさは96*128です。
pngファイルです。jpegファイルではありません。
OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。というエラー文が表示されたら、パスの前に r をつけましょう。r"フォルダのパス" input()にしたら必要なくなりました。
ここではフォルダのパスにダブルクォーテーションは必要ありません。
画像編集
import cv2
import numpy as np
import os
# 処理するフォルダのパスを指定
folder_path = input("folder_path: ")
output_folder = input("output_folder: ")
# 出力フォルダが存在しない場合は作成
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# フォルダ内のすべてのファイルを処理
for filename in os.listdir(folder_path):
if filename.endswith(".png"):
file_path = os.path.join(folder_path, filename)
image = cv2.imread(file_path, cv2.IMREAD_UNCHANGED)
# 画像が正しく読み込まれたか確認
if image is None:
print(f"{filename} が読み込まれませんでした。")
continue
# コピーする部分の座標とサイズ
x, y, w, h = 32, 0, 32, 128
part = image[y:y+h, x:x+w]
# 元の画像の右端に追加するために、新しい画像を作成
new_width = image.shape[1] + w
new_image = np.zeros((image.shape[0], new_width, 4), dtype=np.uint8)
# 元の画像を新しい画像にコピー
if image.shape[2] == 4:
new_image[:, :image.shape[1], :] = image
else:
new_image[:, :image.shape[1], :3] = image
new_image[:, :image.shape[1], 3] = 255 # アルファチャンネルを追加
# コピーした部分を新しい画像の右端に追加
if part.shape[2] == 4:
new_image[:, image.shape[1]:, :] = part
else:
new_image[:, image.shape[1]:, :3] = part
new_image[:, image.shape[1]:, 3] = 255 # アルファチャンネルを追加
# 結果を保存
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, new_image)
print(f"{filename} の処理が完了しました。")
print("すべてのファイルの処理が完了しました。")
フォルダ内のすべてのファイルに追加2
(pyファイルがあるフォルダで実行するだけです。フォルダ名の指定がいりません。上書きなので元の画像は失われます)
ここをクリックしてください
import cv2
import numpy as np
import os
# スクリプトが存在するフォルダのパスを取得
folder_path = os.path.dirname(os.path.abspath(__file__))
output_folder = os.path.join(folder_path)
# 出力フォルダが存在しない場合は作成
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# フォルダ内のすべてのファイルを処理
for filename in os.listdir(folder_path):
if filename.endswith(".png"):
file_path = os.path.join(folder_path, filename)
image = cv2.imread(file_path, cv2.IMREAD_UNCHANGED)
# 画像が正しく読み込まれたか確認
if image is None:
print(f"{filename} が読み込まれませんでした。")
continue
# コピーする部分の座標とサイズ
x, y, w, h = 32, 0, 32, 128
part = image[y:y+h, x:x+w]
# 元の画像の右端に追加するために、新しい画像を作成
new_width = image.shape[1] + w
new_image = np.zeros((image.shape[0], new_width, 4), dtype=np.uint8)
# 元の画像を新しい画像にコピー
if image.shape[2] == 4:
new_image[:, :image.shape[1], :] = image
else:
new_image[:, :image.shape[1], :3] = image
new_image[:, :image.shape[1], 3] = 255 # アルファチャンネルを追加
# コピーした部分を新しい画像の右端に追加
if part.shape[2] == 4:
new_image[:, image.shape[1]:, :] = part
else:
new_image[:, image.shape[1]:, :3] = part
new_image[:, image.shape[1]:, 3] = 255 # アルファチャンネルを追加
# 結果を保存
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, new_image)
print(f"{filename} の処理が完了しました。")
print("すべてのファイルの処理が完了しました。")