最近,画像処理にpythonを用いており,分からない事項があったため質問させていただきます.
Google colabratoryで,pythonを使用しています.
現在,以下のようにcをタイル状に結合して元の画像にしています.
from google.colab import drive drive.mount('/content/drive') from PIL import Image data_root = "/content/drive/My Drive/image_div/" # 4つの画像を開く im1 = Image.open(data_root + "1234_1.jpg") im2 = Image.open(data_root + "1234_2.jpg") im3 = Image.open(data_root + "1234_3.jpg") im4 = Image.open(data_root + "1234_4.jpg") # 4つの画像を結合 def get_concat(im1, im2, im3, im4): dst = Image.new('RGB', (im1.width + im2.width, im1.height + im3.height)) dst.paste(im1, (0, 0)) dst.paste(im2, (im1.width, 0)) dst.paste(im3, (0, im1.height)) dst.paste(im4, (im1.width, im1.height)) return dst # 結合した画像を保存 get_concat(im1, im2, im3, im4).save(data_root + "image_cont/1234.jpg") コード
分割された画像ファイル(結合したい画像)は以下のように,ディレクトリにまとまっています.
image_div
├ 1234_1.jpg
├ 1234_2.jpg
├ 1234_3.jpg
├ 1234_4.jpg
├ 1235_1.jpg
├ 1235_2.jpg
├ 1235_3.jpg
├ 1235_4.jpg
├ 1236_1.jpg
└ ...
4分割された画像のファイル名は組み合わせ毎に連番になっていて,後ろにも_1, _2, _3, _4と連番が振られています.結合して復元した画像は,そのファイル名前の前半部分(コード内で1234)をファイル名として保存しています.
少ない枚数であれば,
上のコード内の4分割された画像のファイル名前半部分,結合して復元した画像のファイル名の部分(コード内で1234)を手動で入力してからコードを実行していますが,数百枚の画像に対して同様の処理をする必要があり,一括で効率よく行いたいと考えています.
つまり,Image.openの引数で指定している,読み込みたい4分割された画像(結合したい画像)のファイル名前半部分と,saveの引数で指定している,結合して出来上がった画像の保存したいファイル名は同じであるため(コード内で1234),その部分の指定を自動でおこない,画像の読み込み・結合・保存を,ディレクトリ内にある同様の多数の画像に対して一括にできるようにしたいと考えています.
初めてのプログラミングに関する質問で,稚拙な説明で大変恐縮ですが,
ご助力いただきたいです.よろしくお願いいたします.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/11 13:49