OpenCV 허프 변환 직선 검출에서 축적 배열 시각화하기
OpenCV의 허프 변환 직선 검출에 사용되는 축적 배열을 시각화하는 방법을 소개합니다. 사용자가 축적 배열을 직접 볼 수 있도록 OpenCV 라이브러리를 수정한 파일을 공유합니다. 이를 통해 영상에서 직선을 더 효과적으로 검출할 수 있습니다.
Opencv는 직선 검출을 위한 HoughLines() 함수를 제공합니다. 내부적으로 Hough Line Transform 알고리즘을 사용해 동작하게 되죠. 여기에는 축적 배열(Accumulator Array)이 사용이 되는데 OpenCV에서는 사용자가 이 축적 배열을 들여다 볼 수 없습니다.
아래 첨부된 OpenCV 라이브러리는 OpenCV를 수정해 축적 배열에 접근할 수 있도록 수정된 라이브러리 입니다.
첨부파일
(OpenCV 4.6.0 Windows x64 전용입니다.)
링크가 안될 경우: OpenCV_accustom.zip
사용방법
먼저 첨부파일을 적용해야 합니다. 세팅된 opencv 폴더의 build\x64\vc15폴더의 bin폴더에는 첨부파일에서 제공된 dll파일을, lib 폴더에도 첨부파일의 lib 파일들을 덮어씌워줍니다.
만약 새롭게 OpenCV를 설치한다면 인터넷 검색을 통해 환경 세팅 방법을 숙지하고 시도해 보시길 바랍니다.
함수의 사용방법은 마지막 accum이 추가된 것을 제외하고 OpenCV의 HoughLines 함수와 사용법이 동일합니다.
Mat accum; HoughLines(인풋이미지, 선들을 저장할 벡터, rho값, theta값, 임계값, 0, 0, 0, CV_PI, accum);
accum 행렬에 축적 배열을 저장합니다. 이를 아래와 같이 시각화할 수 있습니다.
Mat accum_norm; normalize(accum, accum_norm, 0, 255, NORM_MINMAX, CV_8U);
accum_norm 행렬에 시각화된 축적 배열이 저장됩니다.
실행 모습은 아래와 같습니다.
참고자료
위 라이브러리는 아래 게시글을 참고하여 작성되었습니다.
悠悠自適 :: 허프 변환으로 직선 검출 시 축적 배열 받아오기 (OpenCV 소스 수정)

대화 참여하기