OpenCV
[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..
[OpenCV with Python] 영상처리 : 영상의 산술 및 논리 연산
영상의 산술 연산 ✔︎ 덧셈 연산 - cv2.add 두 영상의 같은 위치에 존재하는 픽셀 값을 더하여 결과 영상의 픽셀 값으로 설정한다. 덧셈 결과가 255보다 크면 픽셀 값을 255로 설정 (포화 연산 saturate 연산) cv2.add(src1, src2, dst=None, mask=None, dtype=None) src1 : (입력) 첫 번째 영상 또는 스칼라 src2 : (입력) 두 번째 영상 또는 스칼라 dst : 출력) 덧셈 연산의 결과 영상 mask : 마스크 영상 dtype : 출력 영상(dst)의 타입. (e.g.) cv2.CV_8U, cv2.CV_32F 등 참고사항 - 스칼라(Scalar)는 실수 값 하나 또는 실수 값 네 개로 구성된 튜플 - dst를 함수 인자로 전달하려면 dst의..
[OpenCV with Python] 영상처리 : 영상의 밝기 조절
화소 처리(Point processing) 입력 영상의 특정 좌표 픽셀 값을 변경하여 출력 영상의 해당 좌표 픽셀 값으로 설정하는 연산이다. 밝기 조절이란? 영상을 전체적으로 더욱 밝거나 어둡게 만드는 연산이다. ◽ saturate 연산이란? 음수의 값은 0으로 255보다 큰 값은 255로 만들어주는 연산 ✔ 영상의 밝기 조절을 위한 영상의 덧셈 연산 - cv2.add cv2.add(src1, src2, dst=None, mask=None, dtype=None) src1 : (입력) 첫 번째 영상 또는 스칼라 src2 : (입력) 두 번째 영상 또는 스칼라 dst : (출력) 덧셈 연산의 결과 영상 mask : 마스크 영상 dtype : 출력 영상(dst)의 타입 (e.g.) cv2.CV_8U, cv2...