YOLO学習のためのファイル操作もろもろ

複数のファイルに連番をつける

Windowsの場合にはコマンドプロンプト(あるいはPower Shell)を使えばできる。
新たに勉強するのが面倒くさいのでRで行う。
(例としてPASという名前がついたtifファイルに連番をつける)

mypath <- getwd()

setwd(choose.dir())

files <- list.files(pattern="PAS")

file.rename(files, paste("PAS",sprintf("%05d",1:length(files)),".tif",sep=""))

setwd(mypath)

連番をつけたのちに何番かのファイルが欠損している場合、そのファイル名を知る

(例としてPAS00162.txtまで存在する場合)

for(i in 1:162)
{
	file <- paste("PAS",sprintf("%05d",i),".txt",sep="")
	if(!is.element(file,files)) print(i)
}

フォルダ内のjpgファイルのフルパスをテキストに書き出す

setwd(choose.dir())

files <- list.files()
JPG <- grep("jpg",files)
files <- files[JPG]

sink("data.txt")
for(i in 1:length(files))
{
	cat(paste(getwd(),"/",files[i],sep=""))
	cat("\n")
}
sink()

Bash on Ubuntu on Windowsでのファイル操作(ImageMagick使用)

  • tif → jpg
  • 画像縮小
mogrify -format jpg *.tif
mogrify -resize 600x *.jpg

pythonでの画像回転

import glob
import os
from PIL import Image

files = glob.glob('*.jpg')

for f in files:
    (dirname,filename)=os.path.split(f)

    file_plus = "./new/5+" + filename
    file_minus = "./new/5-" + filename
    img = Image.open(filename)
    img_plus = img.rotate(5)
    img_minus = img.rotate(-5)
    img_plus.save(file_plus)
    img_minus.save(file_minus)