2013-03-22 2 views
1

휴대 전화에서 카메라 플래시를 사용하여 모스 코드를 전송하는 앱을 개발하려고합니다. 내 전송 부분이 잘 작동합니다. DOT 또는 DASH를 기반으로하여 플래시를 켜고 GAP, LETTER_GAP 및 WORD_GAP을 기반으로하여 플래시를 켜고 있습니다. 모든 DOT, DASH, GAP, LETTER_GAP W WORD_GAP에는 ON 또는 OFF 시간이 서로 다 (니다.카메라 플래시를 사용하는 morsecode 용 Android 앱

나는 수신기 측에서 이것을 디코딩하는 방법을 알아 내는데 어려움을 겪고있다 ... 이미지에 밝은 점이 있는지 없는지보기 위해 opencp 바이너리 임계 값을 사용하고있다. 카메라 fps를 기준으로 점/대시/갭을 결정하는 연속적으로 플래시가 켜져 있거나 꺼져있는 프레임의 수를 계산할 수 있습니다. 여기 예제가 있습니다.

발신자 전화기에서 "abc xyz"를 (를) 문자열로 보내고 있습니다. 수신 전화에 나는이 문자열을 받고있다

. - # -. *. * - . -. *. - # -. - - - # - - *. *. 여기서,

"." - DOT "-"- DASH "*"- GAP "#"- 편지 GAP ""- WORD GAP

이 문자열이 정확히 표현되어있다 "ABC의 XYZ"를. 문제는 입니다. 수신자 전화의 경우 새로운 신호를 찾고 어디서 시작해야하는지 그리고을 언제 중지해야하는지 생각할 수 없습니다. 빛 신호를 사용하여 모든 것이 전송되기 때문입니다. 전송과 수신 사이에는 동기화가 없습니다. opencv에서 제공하는 원시 카메라 프레임을 처리하기 때문에 수신기가 시작 신호와 끝 신호를 식별 할 수있는 방법이 없다는 것을 의미합니다. 내가 부과 할 수있는 방법이 있습니까? 또는 검색/디코딩을위한 대체 솔루션?

명확하지 않은 경우 알려주십시오. 고맙습니다!

+0

좋은 아이디어, 내 아이들은 이미 그것을 좋아합니다.) – berak

답변

1

글쎄, 여러 답이있을 수 있습니다. 먼저 수신기에서 수동 입력을 요청하고 첫 번째 초 동안 모든 프레임을 분석 할 수 있습니다. 아마도 조명 패턴 강도에 대한 임계 값을 항상 모니터하고 설정할 수 있습니다. 보낸 사람이 빛을 정확히 1 초 동안 비추고 전송을 시작하는 재 동기화 시퀀스를 만들 수도 있습니다. 이것은 악수 일 것이고 나머지는 메시지 일 것입니다.

위대한 작품과 잘하면 당신이 그것을 밖으로 애플 리케이션을 확인하십시오.

1

체크 아웃 Shivam Kalra 여기서 사용되는 방법 : http://www.codeproject.com/Articles/46174/Computer-Vision-Decoding-a-Morse-Code-Flashing-LED

tldr : 사용자 A가 액자 좌표와 좌표 아래의 화소 (들)의 휘도를 모니터링 할 수 있도록 설정한다.

+1

이 링크가 질문에 대답 할 수 있지만 여기에 답변의 핵심 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – Cleb