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 형태는 아
[ openCV ] openCV 기본 프로젝트 생성
By 온갖 잡기에 능한 뉴공의 블로그입니다. | 2016년 10월 21일 |
![[ openCV ] openCV 기본 프로젝트 생성](https://img.zoomtrend.com/2016/10/21/a0026986_58097ff52bf5f.jpg)
이번에는 openCV 기본 프로젝트를 생성해 본다. openCV 설치 및 개발 환경 설정 방법은 다음 링크를 참조하면 된다.http://newkong.egloos.com/4124254 1. Visual Studio를 실행한뒤 프로젝트를 생성한다. 2. win32 콘솔 응용프로그램을 선택하고 프로젝트 이름을 입력한뒤 [확인]을 누른다.여기서는 프로젝트 이름은 opcnCV_test로 진행하였다. 3. 다음과 같은 Win32 응용 프로그램 마법사 시작이 나타나면 [다음]을 누른다. 4. 추가 옵션에 [빈 프로젝트]에 체크해주고 [마침]을 누른다. 5. 생성된 프로젝트에서 [소스 파일] 우클릭 - [추가] - [새 항목]을 선택한다. 6. cv_test.cpp 라는 이름의 C++ 파일을 생성한다. 7