학습을 위해 대량의 사진을 가져오기 위한 코드
일반적으로 사진을 그냥 막 가져와버리면 정렬이 제대로 안됨
우선 사과라는 폴더안에 있는 사진들을 가져오고 싶을때
# os listdir
import os
# 이미지가 저장된 디렉토리 경로
img_dir = './사과/'
# 디렉토리 내 모든 파일 목록 가져오기
file_list = os.listdir(img_dir)
print(file_list)
# 단점 정렬 되지 않습니다.

sorted를 써도 마찬가지
# 만약 정렬 하고 싶다면 sort 함수 사용
# os listdir
import os
# 이미지가 저장된 디렉토리 경로
img_dir = './사과/'
# 디렉토리 내 모든 파일 목록 가져오기
file_list = sorted(os.listdir(img_dir))
print(file_list)

import glob
import os
file_list = glob.glob(os.path.join("./사과/", "*.jpg"))
print(file_list)
# 을 활용해야 제대로 정렬된 상태로 가져옴
폴더안의 폴더도 for문으로 가능함
#### os.walk 를 이용한 폴더에서 이미지 파일 가져오기 함수 구현
os.walk() 하위의 폴더들을 for문으로 탐색할 수 있게 해줍니다. 인자로 전달된 path에 대해서 다음 3개의 값이 있는 tuple을 넘겨줍니다.
- root : dir과 files가 있는 path
- dirs : root 아래에 있는 폴더들
- files : root 아래에 있는 파일들
def get_img_paths(root_path): # 하위에 있는 경로 모두 탐색
file_paths = []
for (path, dir, files) in os.walk(root_path):
for file in files:
ext = os.path.splitext(file)[-1].lower()
formats = ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.tiff', '.dng']
if ext in formats:
file_path = os.path.join(path, file)
file_paths.append(file_path)
return file_paths
file_paths = get_img_paths("./사과/")
print(file_paths)
# 정렬 하고 싶다면 natsort.natsorted 이용
# file_paths_sort = natsort.natsorted(file_paths)
# print(file_list_sort)
'AI > [Preprocessing]' 카테고리의 다른 글
[전처리] 이미지 비율에 맞게 정사각형 만들기 (0) | 2023.06.15 |
---|---|
[전처리] 가져온 사진 정보 받기 (feat, xml) (1) | 2023.06.15 |
[전처리] 가져온 사진 정보 받기 (feat, json) (0) | 2023.06.14 |
[전처리] 범주형 데이터 전처리 (0) | 2023.06.06 |
[전처리] 손글씨 데이터 PCA 적용예시 (1) | 2023.06.06 |