검은 색 & 흰색 이미지가 링크의 첫 번째 사진처럼 작동합니다. http://imageshack.us/g/33/firstwm.png/ "노이즈"가 많아서 부드럽게하기 위해 Median 필터를 적용하여 두 번째 그림을 얻었습니다.OpenCV에서 커브 (등고선)를 부드럽게하려면 어떻게해야합니까?
cvSmooth(TempImage, TempImage, CV_MEDIAN, 5, 0);
이 후 윤곽을 얻고 링크의 세 번째 그림과 같은 다른 이미지에 그립니다. 내 문제는 윤곽선이 여전히 약간 픽셀 화 (초초)되어 있다는 것입니다. B & W 이미지를 더 부드럽게하여 더 좋은 윤곽을 얻을 수있는 방법이 있습니까? 또는 윤곽선으로 무언가를 할 수도 있습니다. 다른 커널에서도 Dilate와 Erode를 시도했지만 문제는 동일하게 유지됩니다. 도움을 주셔서 감사합니다.
편집 : 또한 시도 : 중간 필터로
cvSmooth(TempImage, TempImage, CV_GAUSSIAN, 9, 9, 3);
cvThreshold(TempImage, TempImage, 127, 255, CV_THRESH_BINARY);
같은 결과를 확인하지만, 여전히 일부 픽셀 화 윤곽을 떠난다. 이 후 당신 평활 결과 인 경우
그것이 가장자리를 부드럽게해야 임계 화 한 후 가우시안 커널을 통해 전달하고 :
업데이트 2 윤곽 버전은 다음과 같이 될 것이다. 아마도 이것이 당신이 원하는 결과일까요? – swalog
나는 당신이 말하는 "노이즈"가 두 번째 예제에서 제거한 것 같은 고주파 성분이라는 가정을하고 있습니다. [this] (http://i.imgur.com/33GIT.png)는 원하는 결과물입니까? 바이너리 출력 만 필요한 경우 [하드 임계 값] (http://i.imgur.com/VelRg.png)이 가장 가까운 것입니다. – swalog
네, 원하는 출력은 가능한 한 부드러운 윤곽선을 가지고 노이즈를 제거하는 것입니다, 나는 당신의 제안에도 Gaussian + 임계 값을 시도했지만 메디아 필터와 같은 결과를 얻었습니다. – Adrian