2012-04-17 2 views
4

C#에서 문자 (OCR)에서 생성 된 선의 끝점을 감지 할 계획입니다. 에라인 끝점 감지

나는 "엔드 포인트"가 무엇을 의미

enter image description here

내가 문자의 모든 라인의 끝을 얻고 싶은 것입니다 ...는 'C'는 두 개의 엔드 포인트가 있습니다 (예를 들어, 하나 나는 이런 식으로 뭔가를 원하는 위쪽 및 아래쪽)을 빨간색 픽셀로 나타낸 위 이미지에서 볼 수 있습니다. "뚱뚱한"기존 스캔 된 문자에서 한 줄을 추출 할 수 있으며, 가장자리 감지 및 홍수 채우기 분석을 수행 할 수 있지만 위의 내용을 복제 할 수 없습니다! 기사 또는 기존 코드에 대한 모든 포인터가 많이 감사하겠습니다! C++ 또는 .NET 언어를 C#으로 쉽게 변환 할 수 있으므로 모든 코드 샘플을 사용할 수 있습니다.

감사합니다, 조쉬

답변

1

아직, 내가 제안 "엔드 포인트"의 정의가 없기 때문에 :

  • 검은 점은 모든 이웃 (맨하탄 거리, 즉 검은 점 IIF 엔드 포인트입니다 < = 3)은 45도 미만의 영역에 위치합니다.

인접한 각 검은 점에 대한 각도를 찾는 것이 너무 어렵지 않아야합니다. 이 각도를 정렬하고 범위를 찾는 것도 어렵지 않습니다. 단절 (각도가 갑자기 360도 변화하는 경우)에주의해야합니다. 각도를 실제로 계산하지 않고 경사로 정렬하는 것이 약간 더 빠를 수도 있습니다. 조기 종료 논리로 추가 속도 향상을 얻을 수 있습니다.

+0

Ok 질문을 정의로 업데이트합니다. 기본적으로 내가 원하는 것은 모든 라인의 끝입니다 ... 예를 들어 'C'는 위 이미지에서 볼 수 있듯이 빨간색 픽셀로 표시된 두 개의 끝점 (위쪽에 하나, 아래쪽에 하나)이 있습니다. 나는 또한 전체 라인을 스캔하는 것을 고려했다. (왜냐하면 홍수 채움 알고리즘을 사용하여 PNG에서 문자를 선택하고 라인을 엷게하여 한 줄로 줄이기 위해 검은 색 픽셀을 사용했기 때문이다) 하나의 다른 검은 색 픽셀 (대각선을 포함한 ALL 방향)으로 둘러싸인 검은 색 픽셀을 검색하는 것입니다. – jduncanator

+0

@jduncanator :이 정의는 실제 사용하기에 기술적으로 충분하지 않습니다. 또한 끝점에는 두 개의 검은 색 이웃이 모두 쉽게 같은쪽에있을 ​​수 있습니다. –