본문 바로가기

반응형

개발자/Computer Vision

카메라 Calibration OpenCV 관련 서적엔 꼭 있는 내용이며, 그만큼 중요하고, 또 어려운 카메라 캘리브레이션에 대해 소개할까 한다. 책으로 공부하게 되면 거의 뒷부분에 카메라 왜곡, 스테레오 카메라 구현에서 이 개념이 함께 소개된다. 필자가 공부했던 "Learning OpenCV 제대로 배우기"(나방 책)에선, 처음에 핀홀 카메라에 대해서 설명하고, 다소 복잡한 선형대수가 나오며, 갑자기 뜬금없는 체스보드 판이 등장하여 그것으로 왔다 갔다 흔들면 왜곡이 없어진다고 한다. "이게 당최 무슨 소리지? 토 나온다." 라고 생각한 사람이 많을 것이다. 그렇지 않았으면 "카메라 캘리브레이션"을 검색하여, 굳이 이 글을 보고 있지 않았을 테니 말이다. 공부를 시작하는 대부분의 사람들이 그렇게 느낄 것이고 필자 또한 그렇게 느꼈다... 더보기
KNN 알고리즘, 숫자 인식예제 까지 K-Nearest Neighbor KNN은 지도학습(Supervised Learning)의 가장 간단한 예시입니다. 다양한 레이블의 데이터 중에서, 자신과 가까운 데이터를 찾아 자신의 레이블을 결정하는 방식입니다. import cv2 import numpy as np from matplotlib import pyplot as plt # 각 데이터의 위치: 25 X 2 크기에 각각 0 ~ 100 trainData = np.random.randint(0, 100, (25, 2)).astype(np.float32) # 각 데이터는 0 or 1 response = np.random.randint(0, 2, (25, 1)).astype(np.float32) # 값이 0인 데이터를 각각 (x, y) 위치에 빨간색으.. 더보기
[OpenCV] Threshold 처리 ##cv2.threshold(image, thresh, max_value, type): 임계값을 기준으로 흑/백으로 분류하는 함수 image: 처리할 Gray Scale 이미지 thresh: 임계 값 (전체 픽셀에 적용) max_value: 임계 값을 넘었을 때 적용할 값 type: 임계점을 처리하는 방식 1) THRESH_BINARY: 임계 값보다 크면 max_value, 작으면 0 2) THRESH_BINARY_INV: 임계 값보다 작으면 max_value, 크면 0 3) THRESH_TRUNC: 임계 값보다 크면 임계 값, 작으면 그대로 4) THRESH_TOZERO: 임계 값보다 크면 그대로, 작으면 0 5) THRESH_TOZERO_INV: 임계 값보다 크면 0, 작으면 그대로 from goog.. 더보기
OpenCV 이미지 연산 OpenCV 이미지 연산 OpenCV를 활용한 ROI(Region of Interest: 관심 있는 영역) 추출 import cv2 import matplotlib.pyplot as plt image = cv2.imread('cat.jpg') # Numpy Slicing: ROI 처리 가능 roi = image[200:350, 50:200] # ROI 단위로 이미지 복사하기 image[0:150, 0:150] = roi plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) plt.show() OpenCV를 활용한 픽셀별 색상 다루기 import cv2 import matplotlib.pyplot as plt image = cv2.imread('cat.jpg') #BG.. 더보기