2013-07-24 5 views
0

조금 현지화 된 질문이 있습니다.로봇이 선택된 영역의 변화를 감지했습니다.

두 점을 추가 할 수있는 스윙 응용 프로그램이 있습니다. 어플리케이션이하는 일은 100ms마다 화면 (직사각형)의 두 점에 의해 결정된 선택된 영역을 저장하고 이전 버전과 비교하여 해당 영역에 변경 사항이 있는지 확인합니다.

그래서이 작업이 100ms마다 작업을 수행합니다

  1. 가져 오기 영역

이의 요점은 내가 필요로한다는 것입니다

  • 이전 버전 (99 %)와 비교하여 비트 맵을 생성 선택된 영역이 변경되었을 경우에 실행되는 처리 선택한 영역의 90 %가 변경되지 않습니다.

    java/swing에서 좀 더 효율적인 방법으로 청취자를 추가하여 지정된 영역이 변경되는지 확인 하시겠습니까? 비슷한 것을 검색하려고했지만 검색 단어가이 유형의 문제에 너무 일반적입니다. (또는 나는 단지 어리 석다.)

    거기에는 거의 수백만 개의 항아리가 있는데, 내 요구에 맞는 비슷한 것이있을 수 있기를 바랬다.

  • +0

    두 점은 한 줄에 불과합니다. 다른 차원이 어떻게 결정됩니까? – blackSmith

    +1

    기본적으로 배경에 변경이있을 때 인터럽트가 생성되기를 원합니다. 권리...?? 내가 잘못 이해하지 않는다면? –

    +1

    @blackSmith : 인접한 두 점을 사용하여 사각형을 만들 수 있습니다. –

    답변

    1

    그림에서 here과 같이 createScreenCapture()은 두 점으로 정의 된 직립 사각형의 픽셀 BufferedImage을 캡처 할 수 있습니다. 임의의 원하는 경험적 방법을 구현하려면 getRGB()을 사용하여 픽셀을 반복 할 수 있습니다. detect a scene change에 대한 귀하의 선택 방법은 목표에 따라 다릅니다. 간단한 예로, getHSBColor()을 사용하여 밝기의 변화를 찾을 수 있습니다. 더 많은 예제는 ImageJ에서 찾을 수 있습니다.

    1

    '변경'을 사용하면 '화면의 디스플레이가 크게 변경되었습니다.'라는 의미에서이 방법이 가장 좋은 방법이라고 생각합니다. 다른 모든 '화면 변경 수신기'는 아마도 같은 것을 구현해야합니다.

    추신 : 아마도 일부 픽셀 만 테스트하여 효율성을 높일 수 있습니다. 예 : 무작위로 10 픽셀 중 1 픽셀을 선택하고 그 값을 비교합니다.

    관련 문제