Q&A

  • 이미지두개 비교
우선 (--)(__) 하구여

현상황
1 캠으로 찍은 이미지가 있습니다
2 한개의 이미지가 있는상태에서 똑 한개를 찍습니다..
3 기존의 이미지와 찍은이미지를 육안으로 비교를 하면 바로 알겠지여
  근데 사람이 없는상태입니다
4 두개를 이미지를 비교하는 프로그램을 짜야 되는데 두개의 이미지를  비교할수있는 기준이 있는지.....(헥사값 어쩌구 저쩌구)그러는데 그것이 맞는지...아니면 어떤식으로 이미지 비교를 해야 되는지를 알시면 가려켜 주시와여 이미지에 관해 많이 아는것 같아서

똑 캠을 컨트롤 할수 있는 델파이 소스가 있는지를 알려고 하는데
  그것두 궁금했어 많은 조언 부탁드립니다 ...그럼우선 이것 먼저
2  COMMENTS
  • Profile
    하얀까마귀 2003.08.26 02:40
    안녕하세요 하얀까마귀 입니다.

    자세한 루틴을 설명드리긴 힘들겠고 대략만... ^^

    먼저 핵사값어쩌구는 값을 16진수로 해라는것 같은데 이건 별 의미없는 말인것
    같구요. 핵사로 하든 10진수로 하든 뭔상관이겠습니까? ^^

    그리고 일단 이미지가 변경되었는지만을 알려고 한다면 간단하겠죠?

    그냥 이미지에서 두값을 각각 비교해 버리면 되죠..

    그러니까.. 음...

    보통 bitmap 이면 scanline 값을 얻어서 두 값을 비교해 버리면 됩니다.

    그럼 이미지가 어디가 얼만큼 변했는지는 알수 있죠..

    하지만 이건 어디까지나 색상이 각 픽셀별로 어떻게 변했는가를 보는거죠.

    그래서 어떤 프로그램을 만들것이고 어떤 기능을 구현할것인가에 따라 루틴이 다 틀리지만 기본적인것은 비슷해요.


    만약 예를들어서 감시용 카메라 라고 생각해보죠.

    그럼 이런 감시용 카메라에서 사람이 지나가는걸 감지해서 경보를 울리는 기능을 만든다면 이런것 가지고는 안되겟쬬.

    뭐 간단하게는 픽셀별로 변화된 값을 보고 결정해도 되겟지만 이런식은 안되겠쬬. 그래서 조금 다르게 구현해야 합니다.

    뭐 윤곽선을 가져 와서 움직임을 감지한다던지 하는것들요..

    뭐 꼭 이렇게 해야되는건 아닙니다.

    위처럼 간단하게는 각각을 영역으로 나누어서 ( 물론 캠에는 밝기 조정이 잇으니까 이런건 감안해야 겠죠? ) 해당 영역에서 일정이상의 움직임이 발생이 되면 사람등이라고 보고 경보를 울리는거죠.. ㅋㅋ

    그리고 음.. 화상채팅같은걸 보면요.. 각각의 영역으로 나누어서 움직임을 첵크하는거죠.. 보통 사람얼굴이니까요..
    그래서 그 변화된값들만을 보내도록 함으로써 통신량을 줄이는거거든요?

    두가지다 그리 간단한것들은 아니구요. 상당히 복잡하고 어려운루틴들이에요.

    말씀처럼 단순히 캠으로 변화되었는지를 볼려고 하는거라면 단순비교 해도 되겠지만 제 경험상으로는 캠으로 그렇게 한다고 하더라도 이미지가 같지가 않은걸로 알고 잇어요. 보통 밝기 조절이라던지 색상 조절기능이 잇어서...
    같은 화면이라도 색상이 틀리거든요..
    물론 꺼두면 되긴 하겠지만..
    이미지에 대해서 많이아신다고 하시니 조금만 공부하시면 하실수 잇으시겠네요.. 그럼 좋은결과 있으시기를..




  • Profile
    이강석 2003.08.25 19:25
    저도 (--)(__)

    우선 이미지의 비교는 먼저 화일 포맷에 따라 실제 이미지 데이터들의
    당근 구조자체가 틀려지겠죠^^;(아님 말구)
    BMP,JPEG,GIF....기타등등
    다른 구조는 잘 모르니깐..
    BMP에 대해서 설명하자면..
    오래되서 기억은 잘 안나지만.....
    먼저 화일헤더부분이 존재하고...
    기타 어쩌고 저쩌고 하는 부분들이 나오다가...
    실제 데이터 부분이 나옵니다..
    게임이나 다른 멀티미디어 부분에서도 이 부분들을 제어하고 조정하져...
    RGB라는 팔레트 정보도 물론 존재합니다....
    그래서 실제 데이터자료에는 기억이 가물가물하지만..
    red(0-255)green(0-255)blue(0-255)..이런식으로 헥사(16진수)로 값을 가지고 있습니다..
    Loop를 돌면서 이런 값들을 체크하는 방법밖에는 뚜렷한 해결방법은 없는걸로(아님말구^^;)알고 있습니다.
    나머지 하나 제가 간과하는 건 먼가 하나를 빼뜨린 것 같습니다..
    자세한 건 www.kgda.org에 가셔서 비트맵으로 자료를 찾으시면 무척이나 많은 정보를 얻으실수 있을겁니다..
    그럼 즐프하세염..