OpenCV
[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
[OpenCV with Python] 영상처리 : 명암비 조절
명암비(Contrast)란? 밝은 곳과 어두운 곳 사이에 드러나는 밝기 정도의 차이 컨트라스트, 대비라고 한다. 기본적인 명암비 조절 함수 효과적인 명암비 조절 함수 - np.clip 그레이스케일의 픽셀값을 조정하여 명암비를 조절하는 법으로, np.clip으로 saturate 연산을 구현하였고 아래의 방정식을 구현하였다. alpha값을 변경해주면서 원하는 명암비를 설정해줄 수 있다. 💬 실습 src = cv2.imread('lenna.bmp', cv2.IMREAD_GRAYSCALE) alpha = 1.0 dst = np.clip((1 + alpha) * src - 128 * alpha, 0, 255).astype(np.uint8) 영상의 자동 명암비 조절 히스토그램 스트레칭(Histogram stretc..
[OpenCV with Python] 영상처리 : 히스토그램 분석
히스토그램(Histogram) 영상의 픽셀 값 분포를 그래프의 형태로 표현한 것 예를 들어 그레이스케일 영상에서 각 그레이스케일 값에 해당하는 픽셀의 개수를 구하고, 이를 막대 그래프의 형태로 표현한 것 정규화된 히스토그램(Normalized histogram) 각 픽셀의 개수를 영상 전체 픽셀 개수로 나누어준 것 해당 그레이스케일 값을 갖는 픽셀이 나타날 확률을 의미한다. 영상과 히스토그램의 관계 히스토그램 구하기 - cv2.calcHist cv2.calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None) images : 입력 영상 리스트 channels : 히스토그램을 구할 채널을 나타내는 리스트 mask : 마스크 영..
[OpenCV with Python] 영상처리 : 컬러 영상과 색 공간
컬러 영상은 3차원 numpy.ndarray로 표현한다. 👉 img.shape = (h, w, 3) OpenCV에서는 RGB 순서가 아니라 BGR 순서를 기본으로 사용한다. OpenCV에서 컬러 영상 다루기 img1 = cv2.imread('lenna.bmp', cv2.IMREAD_COLOR) img3 = cv2.imread('lenna.bmp', cv2.IMREAD_GRAYSCALE) img4 = cv2.cvtColor(img3, cv2.COLOR_GRAY2BGR) RGB 색 공간 빛의 삼원색인 빨간색(R), 녹색(G), 파란색(B)을 혼합하여 색상을 표현 (가산 혼합) TV & 모니터, 카메라 센서 Bayer 필터, 비트맵 (색상) 채널 분리 - cv2.split cv2.split(m, mv=None..