2016-09-14 2 views
1

이미지에 대한 일반 텍스트 구문 분석 알고리즘을 구축 중입니다. 나는 실행중인 :opencv MSER.detectRegions()와 findContours() : 차이점은 무엇입니까?

MSER.detectRegions() 

바이너리 이미지에

findContours(...cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 

대. 결과는 같은 것입니다. MSI는 그레이 스케일에서 수행 될 수 있지만 더 안전하게 가고 싶었습니다.

findContours() 중 하나를 선택해야하는데 실행 시간이 절반 이하입니다. MSER.

내가 누락 된 항목이 있습니까? 무엇을 고르시겠습니까?

+4

바이너리 이미지에서 최대로 안정된 영역을 계산하는 것은 의미가 없습니다! – Miki

+0

왜? 두 선체 사이에 한 픽셀의 연결이 있다면 왜 안 되니? – ndor

답변

2

이미 지적했듯이 MSER를 이진 이미지로 계산하는 것은 의미가 없습니다. MSER는 기본적으로 임계 값을 증가 (감소)하여 이미지 (회색 음영)를 여러 번 임계 값으로 지정하며,이 값은 here과 같은 소위 구성 요소 트리입니다. 서로 다른 이진화 이상으로 크기/모양을 변경하는 연결된 구성 요소는 소위 극도로 안정적인 극한 영역 (예 : 회로도의 K)입니다. 물론 이것은 매우 단순화 된 설명입니다. 자세한 내용은 Google에 문의하십시오. 충분히 찾을 수 있습니다.

이미 알 수 있듯이 이미 임계 값 이미지를 thresholding하는 것은 의미가 없습니다. 따라서 그레이 스케일 이미지를 MSER 알고리즘에 전달하십시오. MSER는 최첨단 텍스트 탐지 접근법 (herehere 참조)의 공통 기반입니다.