2014-07-22 2 views
0

나는이 박스들을 가지고 있는데, 그 중 일부는 검정색과 흰색이다.매트릭스 안에서 패턴 인식

enter image description here

이미지는 U는 블랙 박스로 그려진 모양을 나타낸다.

111111111111111111 
111111111111111111 
111111111111111111 
111111111101111111 
111111111101111111 
111011111101111111 
111011111101111111 
111011111101111111 
111011111101111111 
111011111101111111 
111011111101111111 
111100000011111111 
111111111111111111 

대략 이미지에 도시 된 형상을 형성하는 0을 나타낸다 : I는 1과 0의 매트릭스가 이제 이런 말 (이는 거대한 행렬이 될 수있다). 이미지와 행렬은 예제 일뿐입니다. 이미지는 우리가 패턴을 그려야하는 소프트웨어의 스크린 샷입니다. 그런 다음 주어진 매트릭스 (간단한 텍스트 파일 내부)에 위치해야합니다.

내가 찾고있는 것은이 문제를 분명히 관련이있는 것으로 보이는 패턴 인식과 관련하여 프로그래밍 한 적이 없으므로이 작업을 시작하는 방법에 대한 지침입니다. 이것은 0과 1의 행렬과 일치해야하는 모든 패턴입니다. 며칠 만에 독자적으로 작성할 수 있다고 생각하지 않는다. C#에서 2013 년까지 코드를 작성하고 있으므로 최소한의 의존성으로이 작업을 수행 할 수있는 라이브러리를 찾을 수 있기를 바란다. 감사합니다

답변

0

정확히 어떤 정보를 찾고 싶으십니까? 모양은 모든 글자 또는 임의의 모양입니까?

내가 원하는 것은 무엇이든간에 emguCV로 시작합니다. 너무 사용하기 어렵지 않은 매우 포괄적 인 라이브러리입니다.

EmguCV에는 문자를 잘 추출 할 수 있어야하는 많은 OCR (광학 문자 인식) 기능이 있습니다.

나는 임의의 형태 검출을 위해 그것을 사용하는 것만 큼 많은 경험을 가지고 있지 않지만, emguCV가하는 SURF 탐지가 좋은 방법 일 것이라고 생각한다. 주어진 이미지를 다른 이미지의 피쳐와 일치 시키려고 시도합니다.

+0

그려지는 도형은 알파벳이 아니며 사용자가 그 소프트웨어에서 그려야하는 모든 것이어야합니다. 그런 다음이 그려진 이미지는 1과 0으로 변환되고 1과 0의 주어진 파일 (내가 01 행렬로 그려진 파일)과 대조됩니다. 그래서 결국 나는 그것의 작은 매트릭스가 다른 큰 매트릭스와 일치한다고 생각합니다. 그리고 더 큰 매트릭스에서 작은 매트릭스가 어디에서 발견되는지를 보여줘야합니다. (정확한 일치는 아니지만 일치율은 무엇이든간에) – user734028

+0

나는 생각합니다. 서핑 탐지를 들여다 보면 갈 수 있습니다. 일반적으로 필요한 것보다 더 복잡한 일치를 위해 사용되므로 과도 함일 수 있습니다. 나는 그것을 많이 사용하지 않았기 때문에 최선의 선택인지 확실하지 않습니다. 나는 확실히 그것을 들여다 볼 것이다. 내가 말했듯이 emguCV는 꽤 잘합니다. – OnABauer

0

사람들은 저장된 데이터와 정확히 같은 장소와 크기로 그릴 수 없습니다. 원하는 것들은 종종 신경망 (또한 aforge에서도)으로 수행됩니다. 하지만 A가 그것을 이해하고 B가 코드에서 사용하기가 어려울 수도 있습니다.

어쩌면 이렇게 시도해보고 첫 번째 위치를 얻은 다음 델타 위치를 기록 할 수 있습니다. 긴 선과 그 다음 방향을 찾으십시오. 일반적인 방향 변경 사항을 저장하십시오. 위의 샘플은 "오른쪽 위로"아래에 있으며 길이 정보를 저장할 수도 있습니다.

다음은 문자열 집합의 거리 비교 (예 : levenshtein 함수에서와 같이)가 얼마나 다른지 확인하는 수학이 있습니다. 위선적 인 생각은 C#에서 반올림 함수를 생각합니다. C#은 문자열 함수가 풍부하다고 생각하지 않지만, 일단 C#에 대해 뭔가를 파생시킬 수 있다고 확신한다면 말입니다.