OpenCV를 이용하여 jpg to png 변환 Process 과정을 거칠 상황이 생겨 코드를 작성하던 중 마주친 에러
def jpg_to_png(path):
filePath = '{}'.format(path)
directory_name = basename(path)
print('target directory :', filePath)
fileExt = r'*.jpg'
target_list = list(pathlib.Path(filePath).glob(fileExt))
for target in range(0, len(target_list)):
print('[INFO] target_list[{}] :'.format(target), target_list[target])
target_file = target_list[target]
img = cv2.imread(target_file)
cv2.imwrite(r'{0}\{1}_{2}.png'.format(filePath, directory_name, target), img)
print('[COMPLETE] {0} / {1} :'.format(target, len(target_list)))
argparse
를 통해 변환 디렉토리에 대한 path를 인자로 받아 path
변수로 해당 경로를 전달하여 디렉토리 내에 jpg 파일을 png로 변환하는 코드이다.
img = cv2.imread(target_file)
해당 부분에서 OpenCV SystemError가 발생했고, 해당 오류 수정을 위해 인터프리터 환경으로 전환하여 오류 확인을 진행하였다.
일반적으로 파일의 경로는 str
타입으로 받아오는 경우가 많은데, 디렉토리 내에 jpg 파일 리스트를 가져오는 과정에서 사용한 pathlib
패키지에서 WindowsPath
타입으로 경로를 받아오는 현상이 발생했다.
의외로 타입 변환을 통해 간단하게 해결했다.
img = cv2.imread(str(target_file))
쉽게 해결할 수 있는 문제는 차근차근 쉽게 생각해서 쉽게 해결해보자.