Perception/OpenCV 4

[OpenCV] 히스토그램 평활화(Histogram Equalization)

오늘은 히스토그램 평활화(Histogram Equalization)에 대해서 포스팅하도록 하겠습니다. 히스토그램 평활화는 히스토그램이 평평하게 되도록 영상을 조작해 영상의 명암 대비를 높이는 기법입니다. 영상의 명암 대비가 높아지면 영상에 있는 물체를 더 잘 식별할 수 있게 됩니다. 이름만 봐도 알 수 있듯이 히스토그램 평활화를 이해하기 위해서는 먼저 히스토그램에 대한 지식이 필요합니다.  히스토그램(Histogram) 히스토그램은 0, 1, 2, ... , L-1의 명암단계 각각에 대해 화소의 발생 빈도를 나타내는 1차원 배열입니다. 아래 그림은 크기가 4 x 4이고 명암단계가 L = 8인 영상에 대한 히스토그램을 막대 그래프로 표현한 예시입니다.   OpenCV에서도 영상의 히스토그램을 구해주는 함수..

Perception/OpenCV 2024.05.06

[OpenCV] 허프 변환 (Hough Transform) - 원 검출

개요 이전 포스팅에서는 영상에서 허프 변환으로 직선을 검출하는 원리와 OpenCV에서 제공하는 함수를 알아봤습니다. 허프 변환을 이용하면 영상 내의 원 또한 검출할 수 있는데, 이번에는 원을 검출하는 원리와 OpenCV 함수에 대해서 알아보겠습니다. 허프 변환 (원 검출) 원리 직선 검출의 핵심은 xy 공간에서 에지로 판별된 점들을 ρθ 공간으로 변환하여 생성된 곡선들이, 임계값 이상으로 교차되는 점들을 찾음으로써 직선을 검출한다는 것이었습니다. 원 또한 이 방식으로 검출할 수 있습니다. 일반적으로 중점이 (a, b)이고 반지름이 r인 원의 방정식은 다음과 같이 표현합니다. 이 원의 방정식은 세 개의 파라미터를 가지고 있으므로 허프 변환을 그대로 사용하려면 a, b, r의 3차원 파라미터 공간으로 변환시..

Perception/OpenCV 2023.02.18

[OpenCV] 허프 변환 (Hough Transform) - 직선 검출

개요 이전 포스팅에서 물체의 테두리 즉 edge를 검출하는 케니 에지 검출(canny edge detection)에 대해서 배웠다면, 이번에는 영상에서 추출된 에지 정보를 사용해서 직선을 검출하는 방법에 대해서 알아보도록 하겠습니다. 영상에서 직선을 검출한다면 이는 자율 주행 자동차에서 차선을 검출하는데도 사용할 수 있을 것입니다. 영상에서 직선을 검출하는 도구로 허프 변환(Hough Transform)이 많이 사용됩니다. 허프 변환 (직선 검출 원리) 허프 변환은 2차원 xy 좌표에서 직선의 방정식을 파라미터 공간으로 변환하여 직선을 검출합니다. 일반적으로 직선의 방정식은 xy 좌표에서 다음과 같습니다. $y = a·x + b$ 이를 적당히 이항하면 다음과 같이 ab 좌표 공간에서 기울기가 -x이고, ..

Perception/OpenCV 2023.02.13

[OpenCV] 캐니 에지 검출(Canny edge detection)

개요 살면서 보호색이 뛰어난 동물들이나 곤충들을 본 적 있을 것입니다. 이들은 자신의 주변 환경과 비슷한 색이나 밝기를 가지고 있어서 사람 눈으로 잘 인식할 수 없을 때가 있죠. 이렇게 사람은 눈으로 들어온 이미지의 색이나 밝기가 급격하게 변하는 부분으로 테두리를 인식하고 사물을 구별해 냅니다. 컴퓨터에서도 이와 마찬가지로 이미지의 테두리(edge)를 인식하게 할 수 있습니다. 다만 컴퓨터에서의 이미지는 RGB 값 행렬인 픽셀로 이루어져 있기 때문에 픽셀 값이 급격하게 변하는 부분을 이용하면 테두리를 인식할 수 있습니다. 에지(edge) 검출 방법 결국 컴퓨터에 들어온 이미지 픽셀 값의 변화율을 측정해 변화율이 큰 부분을 고르면 edge를 인식하게 할 수 있습니다. 픽셀 값의 변화율은 저희에게 익숙한 미..

Perception/OpenCV 2023.02.12