質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

分割した画像を保存する際,毎

Skinny-boy
Skinny-boy

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

2回答

0リアクション

0クリップ

340閲覧

投稿2022/07/14 14:53

機械学習用のデータの水増しのために,画像を分割して保存したいのですが,ファイル名が処理するたびに上書き保存されてしまいます.
リネームの方法も検討したのですが,どうもうまくいかず...
ご教授いただけると幸いです.

実現したいこと

ファイル名が同じでも上書き保存されないようにしたい.
あるいはファイル名が既存のものと重複する場合はファイル名を取得できるようにしたい

該当のソースコード

Python(3.10.5)
ソースコード
from pathlib import Path
import cv2
import numpy as np

img = cv2.imread(r"ファイル保存場所")
rows = 3
cols = 3

chunks = []
for row_img in np.array_split(img,rows,axis=0):
for chunk in np.array_split(row_img,cols,axis=1):
chunks.append(chunk)
print(len(chunks))

#出力先のディレクトリを作成する
output_dir = Path("output")
output_dir.mkdir(exist_ok=True)

#保存する
for i,chunk in enumerate(chunks,1):
save_path = output_dir.name + "/" + f"photo{i}.jpg"
cv2.imwrite(str(save_path),chunk)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

TakaiY

2022/07/15 01:19

> ファイル名が処理するたびに上書き保存されてしまいます ソースコード(インデントがないので推測ですが)を見ても特に問題はなさそうですが、「処理するたび」というのは、もしかして、「ファイル保存場所」のところを別ファイル名に書き換えて複数回実施しているということでしょうか?
Skinny-boy

2022/07/15 04:16

追記・修正の依頼ありがとうございます。 毎処理使うファイルを変えているので、そう言う事になると思います。
TakaiY

2022/07/15 04:30

なるほど。ということは、その時は必ず前のファイルと同じディレクトリに同じファイル名で保存されるので、上書きになりますね。 で、その時に出力される分割したファイルはどうしたいのですか? 別の場所に保存する?
Skinny-boy

2022/07/15 04:38

とりあえずは同じ場所に保存したいと考えています。
TakaiY

2022/07/15 04:45

同じ場所に保存ということは、ファイル名を変えたいということだと思いますが、どのような名前に変えますか?
usekay

2022/07/15 06:10

もとのファイル名+連番とか?
Skinny-boy

2022/07/15 09:36

例えば、分割してできた既存ファイル名がphoto_50まであるとしたら、次の処理ではphoto_51からになるようにしたいです。 わかりづらくてすみません。
TakaiY

2022/07/15 10:05

それ、難しいし、あまり意味があるとは思えない。 そうしたり理由は何ですか?
Skinny-boy

2022/07/15 10:17

より簡単にできる方法であれば別の場所に保存する形でもいいと考えています。 いかんせん始めたばかりで何が簡単そうかの判断もつかないので、調べてやりやすそうな上記の形にした次第です…。
TakaiY

2022/07/15 10:29

こういうとき、よくやるのは、元のファイル名を使ったものです。 1つのディレクトリにまとめたければ、usekayさんの書き込みにあるように、もとのファイル名+連番としたり、元のファイル名と同じ名前のフォルダに入れるなどです。 そうすることで、分割後のファイルが、あとからでもどのファイルjを分割したものなのかすぐにわかるので、使いやすいでしょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。