Python/파이썬 OpenCV 공부

[파이썬 OpenCV] 이미지 슬라이드 쇼 - Image Slide Show

AI 꿈나무 2020. 9. 25. 11:45
반응형

이미지 슬라이드쇼

 OpenCV를 이용하여 이미지를 슬라이드쇼 해주는 프로그램입니다.

 하나하나 순서대로 알아보도록 하겠습니다.

 

1. 이미지 파일을 모두 img_files 리스트에 추가합니다.

 이미지 파일을 리스트에 추가하기 위해서는 두 가지 방법이 있습니다.

 

 (1) glob 함수 이용

# 이미지 파일을 모두 img_files 리스트에 추가
# 1. glob 함수 이용
# 특정 패턴의 문자열에 있는 파일들을 다 불러옴 images 폴더 밑에 jpg로 끝나는 파일을 다 불러옴
img_files = glob.glob('.\\images\\*.jpg')

 

 (2) os.listdir 이용

# 2. os.listdir 이용
file_list = os.listdir('.\\images') # 특정 폴더에 있는 이미지 파일 목록을 불러온다.
img_files = [file for file in file_list if file.endswith('.jpg')] jpg로 되어있는 파일을 불러옴

 

 이미지가 잘 저장되어있는지 확인해보겠습니다.

for f in img_files:
    print(f)

 5개의 이미지 파일이 저장되어 있는 것을 확인했습니다.

 

2. 전체 화면으로 'image' 창 생성

 슬라이드 쇼를 위하여 전체 화면으로 영상을 출력해야 합니다.

 

# 전체 화면으로 'image' 창 생성

cv2.namedWindow('image', cv2.WINDOW_NORMAL) # WINDOW_NORMAL 로 만들어야 전체화면 가능

# cv2.setWindowProperty 함수를 사용하여 속성 변경
# cv2. WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN을 이용하여 전체화면 속성으로 변경
cv2.setWindowProperty('image', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

 

3. 슬라이드 쇼 코드 작성

 슬라이드 쇼를 구현하는 코드입니다.

# 사진을 다 보면 처음 사진으로 돌아가게 하기
cnt = len(img_files)
idx = 0

# 무한 루프 실행
while True:
    img = cv2.imread(img_files[idx])

    if img is None: # 이미지가 없는 경우
        print('Image load failed!')
        break

    cv2.imshow('image', img)
    if cv2.waitKey(1000) >= 0: # 1초 동안 사진보여주는데 만약에 키보드 입력이 있으면 종료
        break

    # 사진을 다 보면 첫번째 사진으로 돌아감
    idx += 1
    if idx >= cnt:
        idx = 0

cv2.destroyAllWindows()

 

 코드를 실행하면 1초 간격으로 이미지 파일이 전환됩니다.

 

 

반응형