kunkunwoo@blog:~$ 거누권의 생각깜지

1. OpenCV_ 파일의 종류, cv2 _이미지 불러오기

· 배운 것 · 3분 읽기

BMP : 압축하지 않고 저장
JPG : 손실압축 -> 픽셀값이 바뀜 -> 값의 손실로 결과값이 바뀔수 있기 때문에 영상처리에 잘 안씀!!
GIF : 256색상 이하의 영상 저장 -> 영상처리에서 안씀
PNG : BMP, JPG의 중간, 알파값(투명도) 지원


import sys
import cv2

print("hello opencv", cv2.__version__)

#image 읽기cv2.IMREAD_GRAYSCALE, cv2.IMREAD_COLOR, cv2.IMREAD_UNCHANGED
img = cv2.imread('cat.bmp', cv2.IMREAD_UNCHANGED)

#방어코드
if img is None:
    print("Image is failed!")
    #종료
    sys.exit()

#image 저장하기
cv2.imwrite("cat_gray.png", img)

#image라는 창을 띄우겠다 cv2.WINDOW_NORMAL : 창의 크기 변경 가능
#창을 만들지 않고 imshow를 실행해버리면 창의 조절이 불가하다.
cv2.namedWindow("image", cv2.WINDOW_NORMAL)
#image라는 창에 img를 띄우겠다
#0 1 사이의 값이여야함
cv2.imshow("image", img)
#아무키를 누르기 전까지 여기서 대기
#cv2.waitKey()
while True:
    if cv2.waitKey() == ord('q'):
        break
#창을 끄기
cv2.destroyAllWindows()
#특정창을 끄기
#cv2.destroyWindow("image")
#창 크기 변경
#cv2.resizeWindow(winname, width, height) -> cv2.WINDOW_NORMAL 설정 되어있어야함
#창 위치 이동
#cv2.moveWindow(winname, x, y)

import cv2
import sys
import glob

#저 이름을 가지는 것들 다가져오기
img_files = glob.glob(".\\images\\*.jpg")

cv2.namedWindow("image", cv2.WINDOW_NORMAL)
cv2.setWindowProperty("image", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

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)

    #1초
    if cv2.waitKey(1000) == 27: #ESC
        break

    idx += 1
    if idx >= cnt:
        idx = 0

cv2.destroyAllWindows()