2012-11-06 2 views
4

이미지에 몇 개의 검은 색 영역으로 구성된 여러 윤곽이 있습니다. 이 검은 영역에 직접 인접하여 윤곽선에 속하지 않는 밝은 영역이 있습니다. 이 밝은 영역을 검은 색 영역에 추가하기 때문에 OpenCv에서 윤곽을 확장합니다.
컨투어를 연장하는 편리한 방법이 있습니까? cv::Sobel으로 만든 그라디언트 이미지에서 강도 변화를 살펴본 후 그라디언트가 다시 변경 될 때까지 확대하여 픽셀의 강도가 이미지의 검은 영역이나 밝은 영역으로 돌아 가지 않음을 의미했습니다.OpenCv에서 윤곽선을 확장하기

감사합니다.

다음은 이미지 예제입니다. 첫 번째 그림은 Raw Image를 보여주고, 두 번째는 Canny & findContours를 사용하여 추출한 Contour이고, 마지막 부분은 동일한 영역의 Sobel-Gradient intensity Image입니다. 첫 번째 이미지의 밝은 경계를 윤곽에 포함하고 싶습니다.

enter image description here enter image description here enter image description here

업데이트

이 : 지금은 Sobelgradients에 어떤 형태 학적 연산을 사용하고 주위에 윤곽을 추가했습니다 (아래 이미지 참조). 다음 단계는 자주색 & 빨간 윤곽의 인접한 쌍을 찾을 수 있지만 실제로 직접 인접한 윤곽을 검색해야하는 행렬 시간 낭비와 매우 비슷합니다. 더 좋은 아이디어?

enter image description here

업데이트 2 : 지금은 내 솔루션 내 (보라색) 윤곽 주위에 경계 상자에 모핑 그라데이션 (적색) 윤곽을 검색하고 올바른 방향 & 크기로 하나를 선택하는 것입니다. 이는 그림 3에서와 같이 형태학 연산이 "상승"및 "하강"그래디언트 영역을 닫는 그래디언트 컨투어에서 작동합니다. 그러나 위 이미지에서 밝게 된 영역이 더 넓은 경우에는 여전히 나쁜 솔루션입니다. 모든 아이디어는 여전히 대단히 감사합니다, 감사합니다!

+0

샘플 이미지를 제공해주세요 !!! –

+0

좋아, 내 질문에 몇 가지 그림과 설명을 추가했습니다. – moatilliatta

답변

3

두 가지 기능을 찾아서 병합하려고합니다. 대단히 어렵지는 않지만 이미지를 만들기 위해 여러 복사본을 사용해야합니다.

  1. 은 복사본을 만들 및 암부
  2. 개방 같은 형태 학적 연산을 적용 모두 새로운 이미지로 이미지를 임계 된 병합 광원부
  3. 또 다른 복사 및 임계치를 만들기위한 임계치를 또는 닫기 (임계 값에 따라 다름) 인접한 구성 요소를 연결합니다.
  4. 결과 이미지에서 윤곽 찾기
  5. 원본 이미지에서 윤곽선을 사용하십시오. 모든 이미지가 동일한 크기이고 원본 이미지를 기반으로하므로이 작업이 가능합니다.
+0

답변 해 주셔서 감사합니다. 예, 원래 게시물에 언급 된 접근 방식은 큰 빛 영역을 처리 할 수 ​​없어 매우 유용하지 않았습니다. 귀하의 접근 방식은 대략 내가 결국 생각해내는 것이고 그것은 정상적으로 작동합니다. 그러나 내 접근 방식은 어두운 부분을 찾고 주변에 ROI를 배치하고 가장 적합한 파트너를 찾기 위해 밝은 부분 이미지를 검색 한 다음 병합합니다. 어두운 부분 주위에 여러 개의 밝은 부분이 있다면 접근하지 못할 수도 있습니다. – moatilliatta

+0

그럼에도 불구하고 나는 이미지를 두 번 thresholding하는 접근 방식이 나의 최종 해결책으로 이끌었 기 때문에 당신의 대답을 받아 들일 것입니다 ... – moatilliatta

+0

아, 당신이 의미하는 것을 봅니다. 나는 당신이 당신이 제일 것을 골라 낼 필요가있는 다수 가벼운 부분 후보자가 있을지도 몰랐다. 다행스럽게도 도움이 될 수 있습니다. –

관련 문제