R을 이용해서 Image augmentation 하기.
1. Size 조절
2. 각도 조절
3. Flip (horizontal / vertical)
현재 폴더에 있는 모든 이미지를 불러온 후,
3가지를 수행하여 augmentation 하여 생성된 샐운 이미지를 저장하는 코드입니다.
library(OpenImageR)
setwd("C:/Users/Lee/imgData/") #이미지가 존재하는 경로를 입력
files <- dir()
files # 현재 폴더에 존재하는 5개의 이미지.
[1] "image10001.png" "image10002.png" "image10003.png" "image10004.png" "image10005.png"
# 모든 이미지를 불러와, Images 라는 변수에 list 형태로 저장합니다.
Images <- list()
for( file in files) Images[[file]] <- readImage(file)
imageShow( Images[[1]] ) # 이미지 출력하는법
flips = c("horizontal", "vertical")
for(file in 1:length(files)){
object <- Images[[ files[file] ]] # 1번 이미지부터 5번 이미지까지, for loop로 접근
i = c(1,2) # flips를 결정하는 i
j = seq(ncol(object), ncol(object)-60, -30) # resiz_width 변수를 결정하는 j
k = seq(nrow(object), nrow(object)-60, -30) # resiz_height 변수를 결정하는 k
rotate_angle = c( seq(0, 20, 4), seq(359.5, 340, -4) ) # rotate로 회전시키는 변수 rotate_angle
for(i_idx in i) for(j_idx in j) for(k_idx in k) for(rotate_angle_idx in rotate_angle){ # 4개의 for loop로 Image augmentation
res <- Augmentation(object, flip_mode=flips[i_idx], resiz_width=j_idx, resiz_height=k_idx, rotate_angle = rotate_angle_idx)
filename = paste0(files[file],"_",i_idx,"_",j_idx,"_",k_idx,"_",rotate_angle_idx,".png")
writeImage(res, file_name=filename ) #Augmentation 된 이미지 저장하는 소스코드
}
}
'Programing > R- programming' 카테고리의 다른 글
R Shiny, 웹 기반의 Real time Visualization 제작 (0) | 2018.03.23 |
---|---|
R에서 ROC curve 그리기 (0) | 2018.03.19 |
통계, 데이터 정리 기본 개념 (2) | 2017.03.13 |
R notebooks Markdown release! (0) | 2016.11.23 |
Expectation–maximization과 R을 이용한 구현 (0) | 2016.11.09 |