Corner 검출 #1- Harris corner detector
By 느린번개 | 2017년 2월 9일 |
![Corner 검출 #1- Harris corner detector](https://img.zoomtrend.com/2017/02/09/c0221538_589c01e2aba93.png)
이미지에서 특정 물체를 인식하거나, 추적할때 물체를 특징짖을 수 있는 주요 특징점을 매칭 시키면 쉽게 인식하거나, 추적할 수 있다. Harris Corner는 1980년 Moravec 의 아이디어를 수정 보완한것이다.Moravec은 작은 윈도우를 수직, 수평, 좌대각선, 우대각선 4개 방향으로 1 픽셀씩 이동시켰을 때의 변화하는 intensity 의 차이를 비교하였다. < Moravec's corner detector > 위에 이미지와 같이 flat한 위치에서는 모든방향에서 intensity 의 변화가 없으며, edge의 경우 edge 방향에서만 변화가 있으며,Corner는 모든 방
OpenCV 직선 검출 - 허프 변환(Hough transform)
By 느린번개 | 2017년 2월 10일 |
![OpenCV 직선 검출 - 허프 변환(Hough transform)](https://img.zoomtrend.com/2017/02/10/c0221538_589c1b9fa0a14.png)
이번 포스팅은 이미지에서 직선을 검출하기 위한 허프 변환에 대해서 알아 보겠습니다. 허프 변환으로 직선을 검출하기 위해서는 먼저 이미지의 경계선을 검출해야 합니다. 이미지의 경계선을 검출하는 방법에 대해서는 Canny Edge Detector 포스팅을 참조하기 바랍니다. 우선 중학교 수학시간에 배운 x, y 좌표축에서 직선의 방정식을 기억해봅시다. y = ax + b a : 직선의 기울기, b : y 절편 x, y 좌표평면 위에 임의의 점 p1(1, 1) 이 있다고 가정해보겠습니다.점 p1(1, 1)을 지나는 직선은 무수히 많이 존재하고 각각의 직선은 모두 다른 기울기와 y 절편을 가지게 됩니다.직선의 방정식에 x = 1, y = 1 을 대입해서 b에 관해서 풀어보면 아래처럼 직선의 기울기 a와
Edge 검츨 #1 - Sobel Derivatives
By 느린번개 | 2017년 1월 26일 |
![Edge 검츨 #1 - Sobel Derivatives](https://img.zoomtrend.com/2017/01/26/c0221538_58897c78b0df4.png)
이미지에 존재하는 edge를 감지하고자 할때, edge에서 픽셀 강도가 급격하게 변화한다는 것을 알 수 있습니다. 이미지의 급격한 변화를 잘 표현할 수 있는게 미분을 이용하는 방법 입니다. 하기와 같이 테스트 이미지를 보면 중간의 사선부분이 edge라는것을 할 수 있다.Sobel Derivatives 로 edge를 구하기 위해서 오른쪽처럼 gray 처리를 한다. Gray image의 사선부분의 pixel Value를 보면 아래처럼 보인다. 첫번째 라인중 사선부분만 짤라서 그래프를 그려보면 아래처럼 급격하게 변화되는것을 볼 수가 있다. 1차 미분을 해주면 아래와 같이 egde 부분만 Dataf를 가지는것을 확인 할수 있다. 따라서, 이미지의 Edge를 검출하는 방법이 그 이웃들보다 높은 (또는
[Opencv 4.2/C++] Morphology(팽창연산, 침식연산, 열림연산, 닫힘연산)
By 절대수훈's Notepad | 2021년 5월 27일 |
이글은, 지극히 개인적으로 Opencv 4.2 + C++ 기반으로 작업을 진행하면서, 활용했던 개인 팁을 적어 둡니다. 그렇기에, 함수의 원형이나, 설명은 제외하고 기능들에 대해서만 서술합니다. 1. Morphology 예전에 사용했던, 단순한 3x3 Erode(침식연산), Dilate(팽창연산)은 Opencv2 안의 gapi를 추가 해야 합니다. 그런데 저걸 추가하면 C4996 에러가 발생하는 경우가 많아서, 그냥 morphologyEx 함수를 사용합니다. ㅁ.StructurElement 생성 cv::Mat element_15x_15 = getStructuringElement(MORPH_RECT, Size(15, 15), Point(7, 7)); element 형태는 아