Computer Vision/opencv(python)

[04] [실습] 이미지 슬라이드쇼

jwjwvison 2021. 3. 11. 23:28
  • 이미지 슬라이드쇼
    • 특정 폴더에 있는 모든 이미지 파일을 이용하여 슬라이드쇼를 수행

 

  • 구현 할 기능
    • 특정 폴더에 있는 이미지 파일 목록 읽기
    • 이미지를 전체 화면으로 출력하기
    • 일정 시간동안 이미지를 화면에 출력하고, 다음 이미지로 교체하기 (무한루프)

 

  • 특정 폴더에 있는 이미지 파일(*.jpg)목록 읽기
    • os.listdir()
import os

file_list=os.listdir('.\\images')
img_files=[file for file in file_list if file.endswith('.jpg')]
import glob

img_files=glob.glob('.\\images\\*.jpg')

 

  • 전체 화면 영상 출력 창 만들기
    • 먼저 cv2.WINDOW_NORMAL 속성의 창을 만든 후 , cv2.setWindowProperty() 함수를사용하여 전체 화면 속성으로 변경
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.setWindowProperty('image',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)

 

  • 불러온 영상을 반복적으로 출력하기
import sys
import glob
import cv2


img_files=glob.glob('.\\images\\*.jpg')    #현재폴더 밑에 images폴더 밑에 ~.jpg파일들을 모두 불러와라
                                           #img_files 리스트에 이미지 파일들을 추가

#사이즈 조절이 가능한 'image'창 생성
cv2.namedWindow('image',cv2.WINDOW_NORMAL)

#전체화면으로 만들수 있는 함수 사용
cv2.setWindowProperty('image',cv2.WND_PROP_FULLSCREEN,
                      cv2.WINDOW_FULLSCREEN)

cnt=len(img_files)

while True:
    img=cv2.imread(img_files[idx])

    cv2.imshow('image',img)
    if cv2.waitKey(1000)==27 : #esc
        break
    idx+=1
    if idx>= cnt:
        idx=0

cv2.destroyAllWindows()