반응형
이미지 슬라이드쇼
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초 간격으로 이미지 파일이 전환됩니다.
반응형
'Python > 파이썬 OpenCV 공부' 카테고리의 다른 글
[파이썬 OpenCV] 영상의 생성, 복사, 부분 영상 추출 (0) | 2020.09.25 |
---|---|
[파이썬 OpenCV] 영상의 속성과 픽셀 값 참조 (0) | 2020.09.25 |
[파이썬 OpenCV] Matplotlib를 이용한 영상 출력 (0) | 2020.09.25 |
[파이썬 OpenCV] OpenCV 주요 함수 설명 (1) | 2020.09.25 |
[파이썬 OpenCV] 이미지 불러오기 (0) | 2020.09.24 |