본문 바로가기

image

(15)
[OpenCV][C++] 템플릿 매칭 (template matching) 총정리(2) - 영상 회전 rotated matchTemplate matchShape 모양 형태 정합 찾기 지난번에 템플릿 매칭의 기본에 대해 알아보았습니다. https://blog.naver.com/dorergiverny/223108149822 [OpenCV][C++] 템플릿 매칭 (template matching) 총정리(1) - matchTemplate minMaxLoc SQDIFF CCORR CCOEFF 이번에는 템플릿 매칭에 대해 알아보겠습니다. 템플릿 매칭(template matching)은 원본 영상에서 템플릿 영... blog.naver.com 이번에는 그 것을 좀 더 응용하여 좀 더 멋진 소스를 만들어 보겠습니다. 템플릿 매칭 함수 만들기 템플릿 매칭 방법에 따라 SQDIFF는 최소값을 갖는 위치가 매칭 위치이고, 나머지 CCORR 또는 CCOEFF 는 최대값을 갖는 위치가 매칭 위치입니다. ..
[OpenCV][C++] 영상 분할 ( image segmentation ) 총정리(3) - GrabCut graphcut setmousecallback 그랩컷 지난번에는 워터쉐드 (watershed) 알고리즘에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223099559423 [OpenCV][C++] 영상 분할 image segmentation 총정리 (1) - 워터쉐드 watershed 알고리즘 rainfall inpaint 워터셰드 지난 시간에 우리는 영상 일부분이 훼손된 영상이나 일부분을 지우는 inpaint 기술에 대해 알아봤습니다. h... blog.naver.com 이번에는 GrabCut 알고리즘에 대해 간단히 알아보도록 하겠습니다. GrabCut 알고리즘이란? GrabCut 알고리즘은 영상에서 배경과 전경을 구분하여 전경을 추출하는 알고리즘으로 그래프 컷(graph cut) 기반의 영역 분할 알고리즘 입니다..
[OpenCV][C++] 영상 분할 ( image segmentation ) 총정리(3) - GrabCut graphcut setmousecallback 지난번에는 워터쉐드 (watershed) 알고리즘에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223099559423 [OpenCV][C++] 영상 분할 image segmentation 총정리 (1) - 워터쉐드 watershed 알고리즘 rainfall inpaint 워터셰드 이번에는 영상 분할의 기본적인 방법인 워터쉐드 알고리즘에 대해 간단히 알아 본 후 영상 분할 실습을 해 ... blog.naver.com 이번에는 GrabCut 알고리즘에 대해 간단히 알아보도록 하겠습니다. Grabcut 알고리즘이란? GrabCut 알고리즘은 영상에서 배경과 전경을 구분하여 전경을 추출하는 알고리즘으로 그래프 컷(graph cut) 기반의 영역 분할 알고리즘 입니다. 그..
[OpenCV][C++] 영상 분할 (image segmentation) 총정리(2) - 워터쉐드 (watershed) 알고리즘, cv::distanceTransform 이전에는 마우스 이벤트를 활용하여 markers 영상을 만들고 이를 기반으로 watershed 알고리즘을 수행하는 방법을 알아보았습니다. https://blog.naver.com/dorergiverny/223099559423 [OpenCV][C++] 영상 분할 image segmentation 총정리 (1) - 워터쉐드 watershed 알고리즘 rainfall inpaint 워터셰드 이번에는 영상 분할의 기본적인 방법인 워터쉐드 알고리즘에 대해 간단히 알아 본 후 영상 분할 실습을 해 ... blog.naver.com (1) Watershed Segmentation watershed segmentation을 수행하는 방법을 알아보겠습니다. 이번에는 거리변환(distance Transform) 함수에 대..
[OpenCV][C++] 영상 분할(image segmentation) 총정리 (1) - 워터쉐드 (watershed) 알고리즘 rainfall 이번에는 영상 분할의 기본적인 방법인 워터쉐드 알고리즘에 대해 간단히 알아 본 후 영상 분할 실습을 해 보도록 하겠습니다. watershed 알고리즘 watershed 알고리즘은 영역 기반 분할(region-based segmentation) 의 한 방법으로 영상의 밝기 값의 유사성에 근거하여 영역을 분할하는 방법입니다. 다시 말하면, 영상의 픽셀 값을 높이로 생각하고 영상을 2차원 지형으로 가정할 때 물을 채우고 물 웅덩이로 분할된 영역으로 분할하는 알고리즘 입니다. watershed는 크게 Rainfall, Flooding 의 두가지 방법으로 나눌 수 있습니다. Rainfall: 지형의 고도가 높은 지점에서 물방울을 떨어뜨려 고도가 낮은 물 웅덩이를 만드는 방법 Flooding: 물을 고도가 낮은 골..
[OpenCV][C++] 훼손된 영상 복원하기 - cv::inpaint() 사진속 그림 지우기 제거 image restore 회복 되돌리기 이번에는 좀 재미있는 함수를 알아보려고 합니다. 훼손된 영상을 주변 픽셀 정보를 이용하여 채워넣는 방법입니다. 이 함수를 알아보기 위해 이전에 알아보았던 마우스 이벤트를 사용해볼께요. https://m.blog.naver.com/dorergiverny/223084092098 [OpenCV][C++] 마우스 이벤트 처리 총정리 - onMouse setMouseCallback EVENT_MOUSEMOVE LBUTTONDOWN 이전에는 윈도우 생성 방법과 키보드 입력을 받아 이벤트를 처리하는 방법에 대해 알아보았습니다. https:/... blog.naver.com inpaint()의 원형은 아래와 같습니다. src 입력 영상 inpaintMask inpaint 할 마스크 영상 dst 출력 영상 inpaint..
[OpenCV][C++] 영상 외곽선(contour) 추출 총정리(3) - boundingRect, minAreaRect, minEnclosingCircle arcLength contourArea 이번에는 지난 시간에 이어 findContours() 함수로 얻어왔던 정보를 응용하여 추가적인 정보를 얻을 수 있는 방법에 대해 알아보겠습니다. https://m.blog.naver.com/dorergiverny/223077650900 [OpenCV][C++] 영상 외곽선(contour) 추출 총정리(1) - cv::findContours 윤곽선 경계 컨투어 inRange 검출 지난 시간에는 영상 레이블링에 대해 알아봤습니다. 레이블링을 하면서 object의 크기를 판별하고 크기를 ... blog.naver.com 이는 객체의 모양을 판단하는데 사용될 수 있습니다. boundingRect() 윤곽선 점들을 감싸는 가장 작은 크기의 사각형을 구하는 함수 입니다. 함수 원형은 아래와 같습니다. points ..
[OpenCV][C++] 영상 라벨링(Labeling) 총정리(2) - 동전 개수 세기 총 금액 알아내기 image 레이블링 인덱싱 indexing 원 circle count 이번에는 지난번에 이어 응용편으로 꾸며 봤어요. https://m.blog.naver.com/dorergiverny/223075828736 [OpenCV][C++] 영상 라벨링(Labeling) 총정리(1) - 이미지 레이블링 connectedComponents ccl 이번에는 영상 라벨링(레이블링)이라고 하는 기법에 대해 설명할께요. 영상 라벨링(Image Labeling) 이란... blog.naver.com 영상 라벨링을 통한 동전 개수 세기와 총 금액 알아내기를 해 볼 꺼에요. 동전 개수 총 금액 알아내기 1. 영상 로딩하기 동전 개수를 알아내기 위해서는 먼저 영상을 로딩합니다. 어짜피 gray-scale로 변환을 해야 해서 gray-scale로 로딩을 하였습니다. cv::Mat src = cv:..