2014-04-07 6 views
2

이미지를 비교할 수있는 앱을 작성하려고합니다. 즉, 이미지가 다른 이미지 안에 있는지 확인합니다.이미지를 비교하는 알고리즘

인물, 나무 및 다른 물건이있는 사진을 상상해 봅시다. 나무의 또 다른 그림을 상상해 봅시다. 그 두 번째 그림이 첫 번째 그림의 나무와 유사하다는 것을 확인할 수 있습니까?

바이트를 읽고 비교하려고했지만 작동하지 않았습니다.

이와 같은 작업을 수행하는 가장 좋은 방법은 무엇입니까? 내가 사용해야하는 알고리즘은 무엇입니까? 그리고 이것을 수행하는 가장 좋은 (더 빠른) 언어는 무엇입니까?

미리 감사드립니다.

http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html#feature-homography

+0

세부 사항에 따라 가장 좋은 방법 또는 가능한 유일한 방법으로 이러한 작업을 수행하는 방법은 일반적으로 여러 가지가 있습니다. 두 번째 이미지의 트리 또는 다른 객체가 첫 번째 이미지와 정확히 같은 크기입니까? 아마 더 작을 것이지만 그렇지 않으면 동일합니까? 또는 대략 비슷한 모양을 찾고 계시지 않습니까? 두 이미지에서 사물의 조명이 비슷합니까? 그렇지 않다면 중요합니까? 두 번째 이미지의 개체가 첫 번째 이미지에서 발견되었지만 두 번째 이미지의 배경 또는 다른 개체가 첫 번째 이미지에 존재하지 않는다면 그 개체는 포함됩니까? – DarenW

+0

개체의 크기가 다를 수 있습니다. 첫 번째 사진 안에 "a"유형의 나무가있을 수 있습니다. 이 사진을 찍었을 때, 나는 그 나무의 이름이 무엇인지를 확인하기 위해 내 앱으로 전송합니다. 내가 나무의 jpeg 파일을 많이 가지고 있다고 가정하고 내가 보낸 그림에서 가장 가까운 트리가 어떤 파일인지 확인하고 싶습니다. 가장 좋은 방법은 무엇입니까? – placplacboom

답변

2

이봐, 링크를 따르십시오.

0

SURFSIFT은 두 가지 좋은 알고리즘으로, 원하는 언어로 된 라이브러리에서 널리 사용할 수 있습니다.

또한이 주제에 익숙해 지도록 기본 언어로 구현하는 것이 좋습니다.

1

문자열에서 하위 문자열을 검색하는 알고리즘과 비슷한 알고리즘이 필요하지만 2D 공간에서 검색하려면 개발해야합니다.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.45.581&rep=rep1&type=pdf

복잡성 n은 큰 행렬의 차원 인 최악의 경우에 O (N 2)이다

예를 들어, 여기에서 좋은 해결책이다.

+0

이것은 문자열 패턴 용입니다. 맞습니까? 이미지 파일을 검색하는 방법을 알지 못했습니다. – placplacboom

+0

@DavidL. "문자열"과 "알파벳"은 단지 추상화입니다. 이미지에서 모든 픽셀은 주어진 범위의 값을 가지므로 "문자"로 표현 될 수 있고 전체 이미지는 "2D 문자 행렬"로 표현 될 수 있습니다. –

+0

이미지가 더 작고 어두울 수 있지만 이미지를 사용할 수 있습니까? – placplacboom

관련 문제