OpenCV
[OpenCV with Python] Filtering : 필터링이란?
영상 필터링(Image Filtering)은 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업이다. 필터링 종류 필터링 작동 방법은 크게 두 가지로 나눌 수 있다. (1) 주파수 공간에서의 필터링 (Frequency domain filtering) 주파수 값을 이용하는 필터링 방법이다. 영상에서 주파수 값을 추출하는 FFT를 거쳐서 추출한 값과 설정한 관심영역을 곱하는 IFFT를 통해 주파수 필터링이 작용한다. (2) 공간적 필터링(Spatial domain filtering) 영상의 픽셀 값을 직접 이용하는 필터링 방법이다. 대상 좌표의 픽셀 값과 주변 픽셀 값을 동시에 사용한다. 주로 마스크연산을 이용한다. (마스크 = 커널(kernel) = 윈도우(window) = 템플릿(templ..
[OpenCV with Python] 영상처리 : 히스토그램 역투영
히스토그램 역투영(Histogram backprojection) - cv2.calcBackProject 영상의 각 픽셀이 주어진 히스토그램 모델에 얼마나 일치하는지를 검사하는 방법 임의의 색상 영역을 검출할 때 효과적이다. cv2.calcBackProject(images, channels, hist, ranges, scale, dst=None) images : 입력 영상 리스트 channels : 역투영 계산에 사용할 채널 번호 리스트 hist : 입력 히스토그램 (numpy.ndarray) ranges : 히스토그램 각 차원의 최솟값과 최댓값으로 구성된 리스트 scale : 출력 역투영 행렬에 추가적으로 곱할 값 dst : 출력 역투영 영상. 입력 영상과 동일 크기, cv2.CV_8U 💬 실습 1. 들..
[OpenCV with Python]영상처리 : 특정 색상 영역 추출
특정 색상 영역 추출 특정 색상 영역 추출할 때 HSV 색 공간을 이용하는게 좋다. RGB는 어두운 사진에서 색상 영역 추출하면 잘 되지 않는다. HSV는 H,S로 색상을 조절하고 V는 밝기를 조절하므로 H와 S 범위만 지정해 준다면 어두운 영상에서도 색상 영역 추출을 할 수 있다. RGB 색 공간에서 녹색 영역 추출하기 명도를 낮췄을 경우 명도를 낮췄을 경우 녹색이 제대로 잡히지 않은 것을 볼 수 있다. import sys import numpy as np import cv2 src = cv2.imread('candies.png') # 원본 이미지 src2 = cv2.imread('candies2.png') # 명도가 낮은 이미지 if src is None: print('Image load failed..
[OpenCV with Python] 영상처리 : 히스토그램 평활화 Histogram equalization
히스토그램 평활화(Histogram equalization) 히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타나도록 변경하는 명암비 향상 기법 히스토그램 균등화, 균일화, 평탄화라고 한다. 히스토그램 평활화를 위한 변환 함수 구하기 히스토그램 함수 구하기 : $h(g) = N_{g}$ 정규화된 히스토그램 함수 구하기 : $p(g) = \frac{h(g)}{w \times h}$ 누적 분포 함수(cdf) 구하기 : $cdf(g) = \sum_{0\leq i