2012-02-25 2 views
2

특정 패턴/객체의 위치를 ​​식별하여 이미지를 처리 ​​할 수있는 PHP를 작성하고 xy를 출력 할 수 있는지 알아보기 위해 약간의 조사를하고 있습니다. 객체의 픽셀 위치.php - 그래픽의 패턴 위치 식별하기

프로젝트는 모든지도가 동일한 프로세스를 사용하여 생성되고 좌석의 아이콘이 각 경우에 동일하게 유지되는 (같은 크기 - 16x17 픽셀 포함) a의지도를 처리하는 데 사용됩니다.

전형적인지도는 http://s140173.gridserver.com/so/map.gif

과 같을 것이다 ... 나는 '처음을 찾기 위해 루프에 어떤 종류의'검색 '스크립트를 계획하고 있었다

http://s140173.gridserver.com/so/icon.gif 같은 분명히, 개별 아이콘이 보인다 아이콘 '을 클릭하고 아이콘의 xy 위치를 배열에 추가 한 다음 이미지 기능을 사용하여 메모리에서 아이콘을 검게/왜곡하고 검색을 반복하여'첫 번째 아이콘 '을 찾습니다 (원본이 더 이상 일치하지 않음). 왜곡 된 것입니다.) - 그러나 이런 방식으로 그래픽을 일치시킬 수있는 클래스/기능/확장 기능은 확실하지 않습니다.

이 패턴 일치를 수행하는 방법에 대한 의견이 있으십니까? 이 작업을 수행 할 수있는 라이브러리 또는 확장이 있습니까? 그렇지 않다면 누구나 적절한 다른 플랫폼을 제안 할 수 있습니까?

건배.

+0

전체를 읽지는 않았지만이 페이지 또는 다른 사람들이 도움이 될 수 있습니다. http://www.searchlores.org/finn_cbir_2.htm – TecBrat

+2

PHP는 다음과 같이 작업 할 수있는 몇 가지 기능을 가지고 있습니다. [imagecolorclosest] (http://nl3.php.net/manual/en/function.imagecolorclosest.php), [imagecolorat] (http://nl3.php.net/manual/en/function.imagecolorat.php) 및 다른 많은. 나는 당신이 원하는 것이 불가능하다고 생각하지 않는다! – giorgio

+0

XOR'ing 도움이 될 수 있습니다. imagick이 그렇게 할 수 있습니다 : http://www.php.net/manual/en/imagickdraw.composite.php -하지만 PHP는 모든 가능한 조합을 처리하는 가장 빠른 언어가 아닙니다. – hakre

답변

1

GD를 사용하면 매우 느리고 비효율적 일 수 있지만 아이콘 크기가 같다고 가정하면 이미지를 쉽게 반복하고 일치하는 것을 찾을 때까지 가능한 모든 크기의 사각형을 계속 비교할 수 있습니다. 그러면 두 개의 for 루프가 있고 imagecolorat이라는 색을 얻고이 직사각형을 대상과 비교하면 구현하기 쉬운 여러 가지 방법이 있습니다. 그러나 각 작은 표적을 찾는 데 몇 초가 걸릴 것이므로이 방법을 권장하지 않습니다.

이미지에서이 유형의 지능형 분석을 수행 할 수있는 OpenCV을보고 싶지만 사용하는 것은 상당히 복잡합니다. 이것은 더 나은 방법 일 것이지만, PHP가 아니며 과도한 목적으로 사용하는 것이 좋습니다.

+0

고마워요, Alasdair. OpenCV는 우리가 필요로하는 것을 조금 넘는 것처럼 보이지만 확실히 흥미로운 도구입니다. 나는 imagecolorat을 사용하고 각 아이콘에 0,0 위치에 오프 화이트 1x1 픽셀로 태그를 지정하는 것에 기반한 솔루션을 제시했습니다. 스크립트는 map을 통해 루프를 돌면서 각 픽셀을 검사하고 올바른 색상 인덱스와 일치하면 x, y 값을 배열에 추가합니다. 이미지를 인식하려고하는 것이 훨씬 쉽습니다. 당신의 도움을 주셔서 감사합니다! –

+0

어쨌든 생성 된 이미지를 제어 할 수 있다면 훌륭한 솔루션과 같을 것입니다 ... 좌표를 처음부터 기록하지 않는 이유는 무엇입니까? – Alasdair

+0

지도는 마케팅 팀에서 생성합니다. 일반적으로 Photoshop을 사용하고 그런 것들을 사용합니다. 따라서 세대에 대해 제어 할 수있는 권한이 거의 없습니다. 그러나 이전에 템플릿 아이콘을 사용 했으므로 템플릿 아이콘을 업데이트하여이 1x1 마커 픽셀을 포함 시켰습니다. –