[OpenCV] 2. 영상 입출력 및 저장

최재혁·2022년 10월 4일
0

opencv-python

목록 보기
3/10

영상 불러오기

cv2.imread(filename, flag) 영상을 flag 값에 따라 읽어 들이는 함수

fileName(str) : 파일 경로를 문자열로 명시 (절대, 상대경로 둘 다 가능)

문자열 명시 시 주의사항
기본 확장 문자 인식 방지를 위해 \가 아닌 /로 경로 표현

color 의 경우 /로 경로를 표현하여 정상적으로 영상이 불러와진다.
color_err의 경우 **로 경로를 표현하여 \b** 부분이 기본 확장 문자로 인식되어 경로를 제대로 읽지 못하여 영상이 불러와지지 않아 아래와 같은 오류가 발생

기본확장 문자 종류
\' : 따옴표 문자    -
\" : 쌍따옴표 문자 
\ : backslash 문자 
\a : bell 문자
\b : backslash 문자
\f : Formfeed 문자 
\n : newline 문자
\r : carriage return 문자(\n와 동일하지 않다.) 
\t : tab 문자 
\v : vertical tab 문자

flag(int) (default == 1) : 영상을 읽을 때의 Option

1 (cv2.IMREAD_COLOR) : 영상을 Color로 읽어 들임 투명한 부분은 무시된다.

0 (cv2.IMREAD_GRAYSCALE) : 영상을 Grayscale(흑백)로 읽어 들임

-1 (cv2.IMREAD_UNCCHANGED) : 영상을 alpha channel까지 포함하여 읽어 들임

예시 코드

# path와 이미지이름 변수화
path = "D:/dev/wego-project/erp_udp/bookcode/"
image = "lena512.bmp"
    
# 영상 불러오기
color = cv2.imread(path+image,1)
gray = cv2.imread(path+image,0)

영상 디스플레이하기

cv2.imshow(title. image) 영상을 디스플레이 하는 함수

title(str) : 윈도우 창의 Title
image(numpy.ndarray) : cv2.imread()로 불러드린 값

cv2.waitkey(delay) 키입력을 대기하는 함수

delay(int) (default == 0) : keyboard 입력을 대기하는 함수.

msec 단위로 명시하여  키입력을 기다리며 명시한 시간만큼 영상을 디스플레이 
기본값 0은 key 입력까지 무한 대기를 뜻함.

cv2.destroyAllWindows() cv2.imshow()로 디스플레이한 윈도우를 종료

💡 일반적으로 위 3개의 함수를 같이 사용하여 영상을 디스플레이 한다.

예제 코드

원본 영상을 color와 grayscale로 각각 불러온 이후 디스플레이, 키입력을 주고 윈도우창을 종료하는 코드

import cv2
    
# 영상 불러오기
color = cv2.imread("D:/dev/wego-project/erp_udp/bookcode/lena512.bmp",1)
gray = cv2.imread("D:\dev\wego-project\erp_udp/bookcode\lena512.bmp",0)
    
# 영상 디스플레이
cv2.imshow("color",color)
cv2.imshow("gray",gray)
    
# 키입력 대기
cv2.waitKey()
# 디스플레이한 윈도우 종료
cv2.destroyAllWindows()

결과

영상 저장하기

cv2.imwrite(filename, img, params) 영상을 저장하는 함수
filename(str) : 영상을 저장하고자 하는 경로와 file이름과 확장자를 같이 명시
img(numpy.ndarray) : 저장하고자 하는 영상 값

예시 코드

# 영상 저장
cv2.imwrite("D:\dev\wego-project\erp_udp/bookcode\color_lena.jpg",color)
cv2.imwrite("D:\dev\wego-project\erp_udp/bookcode\gray_lena.jpg",gray)

영상이 저장된 것을 알 수 있다.

profile
Autonomous driving vision

0개의 댓글