5) 주요 이미지 라이브러리 Open CV
# OpenCV 이미지 로딩
- imread()를 이용한 이미지 로딩
> OpenCV에서 이미지 로딩은 imread('파일명')을 이용 , imread()은 파일을 읽어 넘파이 배열로 변환 (x,y,z)세로,가로,채널
* OpenCV가 이미지를 RGB 형태가 아닌 BRG 형태로 로딩하기 때문에 이미지의 색감이 변한다.
- 이미지 로딩시 BGR을 RGB로 변환
> cvtColor (이미지 배열 , cv2.COLOR_BGR2RGB) 이용
- OpenCV 이미지 배열을 파일에 쓰기
> opencv에서 메모리에 있는 이미지 배열을 저장하려면 imwrite('출력파일명',img_array)이용. 이때 imwrite()로 인해 BGR형태인 이미지 배열을 다시 RGB 형태로 변환하여 저장함 . 즉 , imread()로 일고 imwrite()로 출력하면서 이미지파일은 다시 RGB형태로 저장된다.
#OpenCV 영상처리 개요
> Video Capture 클래스는 동영상을 개별 frame으로 하나씩 읽어들이는 기능을 제공한다.
cap = cv2.VideoCapture(Video_input_path)
while True:
has_Frame , img_frame = cap.read()
if not has_Frame:
break
- Vdieo Capture 개요
- Video Capture 객체는 생성 인자로 입력 Video파일 위치를 받아 생성
cap = cv2.VideoCapture(video_input_path)
- 입력 video 파일의 다양한 속성을 가져올 수 있다.
영상 Frame 너비 , 영상 Frame 높이 , 영상 FPS
cap.get(cv2.CAP_PROP_FRAME_WIDTH)
cap.get(cv2.CAP_PROP_FRAME_HIGHT)
cap.get(cv2.CAP_PROP_FPS)
- Video Writter 개요
Video Writter 객체는 write할 동영상 파일 위치, encoding 코덱 유형 , write fps 수치 , frame 크기를 생성자로 입력 받아 이들 값에 따른 동여상 write 한다.
cap = cv2.VideoCapture(video_input_path)
codec = cv2.VideoWritter(*'XVID')
vid_size = (round(cap.get(cv2.get(CV2~WIDTH)),round(cap.get(cv2.get(CV2~HEIGHT)))
vid_fps = cap.get(cv2.CAP_PROP_FPS)
vid_writter = cv2.VideoWritter(video_output_path,codec,vid_fps,vid_size)