OpenCV 5

[컴퓨터 비전] 4 영역 연산

화소 입장에서 바라본 영상 처리 연산이란 화소가 새로운 값을 받는 과정입니다. 새로운 값을 어디에서 받느냐에 따라 점 연산, 영역 연산, 기하 연산의 세 종류로 구분할 수 있습니다. 점 연산은 자기 자신으로부터 값을 받고, 영역 연산은 이웃 화소의 값을 보고 새로운 값을 결정합니다. 기하 연산에서는 기하학적 변환에 따라 다른 곳으로부터 값을 받습니다. 컨볼루션(convolution) 컨볼루션은 입력 영상의 각 화소에 필터를 적용해 곱의 합을 구하는 연산입니다. 필터를 입력 영상의 1, 2, 3, ..., 8 위치에 차례로 씌우고 곱의 합을 구해 출력 영상에 씌웁니다. 출력 영상에 씌우는 이유는 - 연상 도중 본래 화소 값이 바뀌면 다음 화소 처리를 할 때 오류가 발생하기 때문입니다. (a) 그림은 위치 ..

[개발] OpenCV 감마 조절

웹 캠에서 영상을 받아오고, 실시간으로 사용자가 'u' (up) , 'd' (down) 버튼으로 감마를 조절할 수 있는 코드를 작성하겠습니다. import cv2 as cv import numpy as np 나중에 gamma 조절 함수의 반환값으로 np.uint8 타입을 써야하므로 numpy를 임포트합니다 gammaValue = 1.0 # 감마 기본값 초기화 이번 개발중 가장 오류가 많이 생긴 이유이자. 가장 기본적인 초기화를 (while 밖에) 해 줍니다. 만일 while문 안에 초기화 시키면 매초마다 frame을 읽어올 때 gammValue도 초기화 되기에 u, d으로 감마를 조정해도 다음 프레임부터는 1.0 감마로 출력되게 됩니다. while True: global gammaValue # 감마 초기..

개발 2023.04.25

[개발] OpenCV 얼굴 모자이크

웹 캠에서 얼굴 영상을 받아오고, 출력 값으로 받아온 얼굴 이미지만 모자이크 처리해서 모자이크 된 영상을 출력하는 프로그램을 작성하겠습니다. import cv2 as cv import sys 사람 얼굴을 검출하는 객체를 생성하기 위해 cv2 라이브러리를 불러오고, 예외처리를 위해 sys를 임포트 합니다. face_cascade = cv.CascadeClassifier(cv.data.haarcascades + 'haarcascade_frontalface_default.xml') OpenCV는 얼굴 검출을 위한 캐스케이드 분류기가 있습니다. 캐스케이드는 유사 하르(haar-like) 특징을 사용하여 얼굴을 검출합니다. 유사 하르란 간단히말해서. 하얀 영역 화소값에서 검정 영역 화소값을 빼면 사람의 얼굴 특징..

개발 2023.04.25

[컴퓨터 비전] 3 점 연산

화소 입장에서 바라본 영상 처리 연산이란 화소가 새로운 값을 받는 과정입니다. 새로운 값을 어디에서 받느냐에 따라 점 연산, 영역 연산, 기하 연산의 세 종류로 구분할 수 있습니다. 점 연산은 자기 자신으로부터 값을 받고, 영역 연산은 이웃 화소의 값을 보고 새로운 값을 결정합니다. 기하 연산에서는 기하학적 변환에 따라 다른 곳으로부터 값을 받습니다. 앞서 공부한 오츄 알고리즘(이진화)은 점 연산에 속합니다. 오츄 알고리즘 오츄 알고리즘 은 0 화소의 분산과 1 화소의 분산을 더하여나온 t 중가장 낮은 값의 t를임곗값으로 사용해 이진화 합니다. 감마 조절 인간의 눈은 빛의 밝기 변화에 비선형적으로 반응합니다. 그 예로 명암 10을 20으로 올렸을 때와 120을 130으로 올렸을 때는 같은 양만큼 늘었지만..

[OpenCV] OpenCV 시작 - 기본

[컴퓨터 비전과 딥러닝 - 오일석] 책 내용 입니다. OpenCV는 인텔 사에서 만들어 공개한 컴퓨터 비전 라이브러리입니다. 이를 구성하는 함수와 클래스는 C와 C++ 언어로 개발했으며, 전체 코드는 180만 라인 이상입니다. 데스크톱 운영체제는 윈도우, 리눅스, macOS를 지원하며, 모바일 운영체제는 안드로이드와 IOS가 있습니다. 처음 해볼 OpenCV 프로그래밍은 폴더에 저장되어 있는 영상 파일을 읽고 화면에 나타내 보겠습니다. import cv2 as cv # opcencv 라이브러리 import sys # 파이썬 시스템 변수 설정 라이브러리 img = cv.imread('이미지.jpg') # 이미지 변수 생성 if img is None: sys.exit('파일을 찾을 수 없습니다') # 파일 ..

Python/OpenCV 2023.04.01