부트캠프/컴퓨터 비전

영상 처리 개요 및 OpenCV 소개

례지 2022. 11. 4. 11:21
728x90
영상 처리 개요

영상

  • 광선 혹은 매체에 의한 정보를 시각적으로 표현한 것
  • 이미지
  • Gray image vs. Color image

영상처리

  • 영상을 대상으로 하는 신호처리의 한 분야
  • 영상의 화소값을 조작하여 여러 효과를 줌
  • 잡음 제거, 화질 향상, 영상 압축, 영상 와핑, 모핑 등
  • 아날로그 방식 ( ~ 20세기 중)
  • 1960년 달 표면 사진 화질 복원에 대한 연구가 시초

영상 처리의 분야

  • 화질 향상
  • 기하학적 변화
  • 영상 압축
  • 동영상 처리
  • 영상 분할
  • 객체의 모양 기술
  • 객체 인식

컴퓨터 비전

  • 컴퓨터에 시각을 주는 작업으로 시각으로부터 입력 받은 영상을 이용하여 인간이 할 수 있는 일을 자율적으로 수행하는 알고리즘에 대한 연구분야
    • 특정 물체의 사진을 컴퓨터에 입력
    • 사진 안의 객체를 인식하는 일을 자동으로 수행
  • 영상 정보로부터 얻을 수 있는 밝기, 색상, 모양, 텍스처 등을 이용하여 업무 수행
  • 주로 머신러닝 기술을 이용하여 영상에 적용
  • 영상 처리와 컴퓨터 비전의 경계는 명확히 나누기 어려움
    • 많은 사람들이 혼용하여 사용
  • 수학 및 공학 이론이 차지하는 비중이 매우 큼
    • 선형대수, 미적분학, 확률과 통계, 기하학
    • 수치해석, 알고리즘, 최적화
    • 신호처리, 인지과학
    • 카메라 구조 및 영상 획득과 관련된 관련된 과학
  • 컴퓨터 그래픽스와 상대적인 개념이지만 함께 발전

Open CV 라이브러리

cv2를 실행하고 버전 확인하기

이미지 파일 불러오기

이미지 파일을 불러와 크기 확인하기, 기본값은 컬러
흑백으로 출력하고 싶으면 이미지 파일 옆에 0을 넣고 출력하면 된다.

윈도우 창으로 이미지 출력하기

맨 첫 열의 startWindowThread()는 생략 가능하다.

폴더에 이미지 넣기

폴더에 이미지를 넣으려면 일단 폴더를 만들고, png, jpg 등으로 바꿔서 넣을 수 있다.

color image display

이미지 파일의 기본 컬러값은 bgr.

이미지를 color 값 변경

bgr을 rgb로 변경하려면 cvtColor를 사용

gray image display

그레이 이미지로 출력하려면 출력할 때 설정해야 한다.

  • Interpolation은 보간법을 뜻하며, 픽셀들의 축 위치 간격을 보정하여 이미지가 자연스러운 모양으로 분리할 수 있게 하는 방법
  • imshow()에서는 16가지 보간법이 있고, 'nearest'는 가장 고해상도인 보간법
magin image save

이미지 크기를 조절하기

subplot image display

subplot을 이용하여 이미지 정렬하기

video input and display

비디오 출력하기


  • 영상 입력: cv2.imreaad(filename[,flage]) → retval
  • 영상 파일 출력: cv2.imwrite(filename, img[, params]) → retval
  • 윈도우 생성: cv2.namedWindow(winname[, flags])
  • 윈도우 표시: cv2.imshow(winname,mat)
  • 키보드 입력 대기: cv2.waitKey([,delay])
  • 윈도우 파괴: cv2.destroyWindow(winname) cv2.destroyAllWindows()
  • 비디오 획득 객체 생성: cv2.VideoCapture() → cv2.VideoCapture(filename) → cv2.VideoCapture(device) → device = 0, 1, …
  • 프레임 획득: cv2.VideoCapture.read([image]) → retval, image
  • 프레임 잡기: cv2.VideoCapture.grab() → retval
  • 프레임 획득: cv2.VideoCapture.retrieve([image[, channel]]) → retval, image

영상 처리를 위한 기본 기능 및 이벤트 처리 구현
white 배경 생성 및 pt1 - pt2(red), pt1-pt3(blue)을 잇는 선 그리

white 배경 생성 및 사각형 그리기

clipLine: 직사각형과 직선이 만나는 교차점을 구하는 함수

반지름이 200(red), 100(red), 10(blue),1(red)이고 이미지 중심에 같은 원 그려보기

ellipse: 타원을 그리는 함수
그림의 중심에 임의의 크기 타원 그려보기, 각도 0, 45 변경 등 다양한 시도

앞의 타원을 box 옵션 지정해서 구현해보기

728x90