拡大、縮小、輪郭抽出等の画像処理をし保存していくことはよくある事だと思います。
私は、元画像が入っているフォルダ内に画像処理をした画像を保存するフォルダを作成しその中に元画像と同一名で保存していきます。
その際、新規のフォルダに画像保存するためには、元画像のファイルパスに新規のフォルダパスを挿入しなければなりません。
その為、画像処理をしたファイルのパスのお尻からファイル名の文字数を指定して切り出し、新規のフォルダ名を挿入、その後、元のファイル名を付けたすことをやっていましたが、いつもここで手間取ってしまうんです・・・・
画像番号が9から10になるとファイル名の文字数が変わってしまうのです。。。。。1文字増えてしまうのです。。。
ファイルが一つ二つであれば問題ないのですが、シリーズで処理すると20~30枚程度、for文で一気に処理したいのでファイル名の文字数を揃えることをしていました。
その為、ファイル名にある画像番号の桁数を揃える処理を加えていました。
しかし、これが面倒で・・・・
文字で書くと簡単な作業に思われるかもしれませんが、数えているうちに訳が分からなくなってきて・・・・
しかも画像番号だけでなく、シリーズ番号も桁が変われば文字数が変わる。。。。
あ~~~~~ってなってました。
また、ある時はパス全体の文字数をカウントし、数が増えたら切り出す数を1増やすという事をやっていました。
なんとも、おバカでした私・・・・
簡単な方法があったんです。
その方法は、後ろからフォルダ区切りの”/”を見つけて文字数をカウントするだけで良かったんです。
それが、rfind(“/”)です。
いかがでしょうか?
画像番号の桁が増えても、シリーズ番号の桁が増えてもなんてことない。
とても簡単に済んでしまいます。
以下にコードを示します。
1 2 3 4 5 6 7 8 |
filename =“C:/Users/Desktop/heart_cine/short_axis_EF15_copy/heart_ef15_3_9.png” cou = filename.rfind(“/”) print(“一番後ろの/は、前から数えて” + str(cou) + “番目”) print(“ファイル名は “ + filename[cou + 1:]) |
みなさん、よろしければ使ってください。
環境
- windows10
- python3.6.1
- Anaconda custom(64-bit)
- PyCharm2020.2(Communication Edition)
コメントを残す