반응형
1. OpenCV란
OpenCV(Open source Computer Vision) 는 실시간 컴퓨터 비젼을 처리하는 목적으로 만들어진 라이브러리이다.
설치 방법
pip install opencv-python
2.이미지 파일 읽기
cv2.imread 함수로 이미지 파일을 읽는다.
이미지 파일은 Numpy array 형태의 값으로 입력이 되고 이 숫자가 해당 위치에서의 색을 의미한다.
사용법
cv2.imread(fileName, flag)
flag
cv2.IMREAD_COLOR(1) : 이미지 파일을 Color로 읽음. 투명한 부분은 무시하며 Default 설정입니다
cv2.IMREAD_GRAYSCALE(0) : 이미지 파일을 Grayscale로 읽음. 실제 이미지 처리시 중간 단계로 많이 사용합니다
cv2.IMREAD_UNCHAGED(-1) : 이미지 파일을 alpha channel 까지 포함해 읽음
이미지 파일 모양 확인
image.shape
#(224,224,3) 행의 픽셀 * 열의 픽셀 * 채널의 수(bgr)
3. 이미지 보기
cv2.imshow(title, image)
title 은 창의 제목을 표시, image 는 cv2.imread 로 읽은 값
키 입력될때까지 대기 및 윈도우 종료
cv2.waitKey(0) #0이면 무한대기 1이면 1ms 동안 대기
cv2.destroyAllWindows()
4. 이미지 저장
cv2.imwrite('result.jpg', image)
5. 카메라로 비디오 읽기
웹캠 연결
cap = cv2.VideoCapture(0)
if not cap.isOpened():
exit()
웹캠이 여러개 인 경우 0,1,2 순으로 선택한다.
이미지 크기 설정
ret, img_bgr = cap.read() # (800, 1920, 3)
resized_width = 320 #출력할 크기 설정
video_size = (resized_width, int(img_bgr.shape[0] * resized_width // img_bgr.shape[1]))
비디오 읽어서 출력
while True:
ret, img_bgr = cap.read()
if not ret:
break
img_bgr = cv2.resize(img_bgr, video_size) #bgr 타입으로 읽는다.
cv2.imshow('img', img_bgr) #화면에 출력
if cv2.waitKey(1) == ord('q'): #q가 입력 되면 종료한다.
break
cap.release()
6. 동영상 파일 읽기
cap = cv2.VideoCapture('video.mp4')
if not cap.isOpened():
exit()
7. 동영상 파일 저장
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output.avi', fourcc, 25.0, (640,480))
while (cap.isOpend()):
ret, frame = cap.read()
if ret:
# 이미지 반전, 0:상하, 1 : 좌우
frame = cv2.flip(frame, 0)
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) == ord('q'):
break
else:
break
fourcc = cv2.VideoWriter_fourcc(*'DIVX') 에서 cv2.VideoWriter_fourcc('D','I','V','X') 와 같이 사용되기도 한다.
적용 가능한 포맷은 DIVX,XVID,MJPG,X264,WMV1,WMV2 등이 있다.
딥러닝 활용 방법에서는 대부분 웹캠을 이용하여 입력 된 이미지 처리를 머신러닝으로 훈련된 데이터를 기반으로 활용하는 방법을 살펴 볼 예정입니다.
따라서 웹캠과 이미지 처리를 담당하는 CV2 라이브러리 사용법에 대해서 살펴 보았습니다.
반응형
'머신러닝 > 7. 머신러닝 활용하기' 카테고리의 다른 글
[머신러닝 활용]4. 고양이 얼굴 인식 딥러닝을 만들어 활용하기 (0) | 2022.09.27 |
---|---|
[머신러닝 활용]3. dlib 을 이용하여 얼굴 인식 프로그램을 만들어 보자. (0) | 2022.09.27 |
[머신러닝 활용]2. 웃음 판독기 딥러닝 (0) | 2022.09.27 |
[머신러닝 활용]1.성별과 나이를 맞추는 인공지능 (0) | 2022.09.27 |
5.삼성전자 주식 인공지능으로 예측하기 (0) | 2022.06.16 |