2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

머신러닝/7. 머신러닝 활용하기

[머신러닝 활용기초] OpenCV 사용법 알아 보기

파아란기쁨1 2022. 9. 27. 15:35
반응형

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 라이브러리 사용법에 대해서 살펴 보았습니다.

반응형