2014-07-21 3 views
3

현재 이진 이미지에서 얼룩을 감지하기 위해 OpenCV를 사용하고 있습니다. 큰 물체를 변경하지 않고 작은 선을 지우고 싶습니다. 여기 OpenCV를 사용한 이진 이미지의 얇은 선 제거

은 예입니다 : 원본 이미지가

Original image

내가로 변환하려면 다음

Transformed image

"열기"를 적용 할 때, 일 때문에하지 않았다 그것은 삼각형의 가장자리가 잘렸다. 큰 삼각형의 정보를 잃지 않고 선을 제거하는 다른 방법이 있습니까?

사용 Erosion 같은 노이즈를 제거하는

답변

3

,

코드 모양처럼, erosion followed by dilation will get you very close to what you want을 제안 것이 더 적절한 방법, 여기에 @Bull 의견을 추가

Mat src;//load source 
Mat dst;//destination image 
Mat element = getStructuringElement( MORPH_RECT,Size(5,5), Point(-1, -1)); // kernel performing drode 
erode(src, dst, element); 

편집

.

enter image description here

+0

는 "침식"또한 라인을 제거하는 방법과 삼각형의 원래 크기를 유지가, 삼각형의 크기를 감소? –

+0

[Morphology Transformations] (http://docs.opencv.org/doc/tutorials/imgproc/opening_closing_hats/opening_closing_hats.html) – Haris

+2

그렇습니다. 그러나 침식에 이어 확장이 이루어지면 원하는 결과를 얻을 수 있습니다. – Bull