Wat de topicstarter vraagt is natuurlijk iets heel anders dan software die gebruikt wordt om gezichten e.d. met elkaar te vergelijken.
Het is namelijk niet zo moeilijk om te kijken of 2 afbeeldingen identiek zijn, of om te kijken of de ene afbeelding onderdeel is van de andere afbeelding. Zoiets is namelijk niet eens heel erg moeilijk te realiseren. Er moet wel met een aantal dingen rekening worden gehouden:
1) Verschillende bestandsformaten. Als je een jpg-versie van een bepaalde bmp-afbeelding zou hebben is het al een stuk moeilijker om de afbeeldingen te vergelijken, omdat er sprake is van kwaliteitsverlies, en verwijdering van visueel redundante informatie. Als je zoiets wil maken moet je er dus in elk geval voor zorgen dat de twee te vergelijken afbeeldingen gelijk zijn.
2) Verschillende afmetingen: ook hier geldt weer: vergelijk je een plaatje met een kopie die kleiner is, dan komt er schaling aan te pas en zal je moeten uitkijken dat tijdens het schalen geen verlies optreedt, of pixels enigszins verschuiven door afrondingsfouten.
Je zegt dat pixel voor pixel de kleurwaarden vergelijken een optie zou zijn, dit lijkt mij ook het beste geval. Heel erg snel is het niet, maar wel het eenvoudigst. Ik zou echter wel een fout-tolerantie inbouwen, met hierin een maximum aantal afwijkend pixels (desnoods een percentage) en/of maximale afwijking van de kleurwaarde.
Zo kan je nogal wat omprutsen. Ook kijken of een afbeelding een deel is van een andere afbeelding kan analoog. Je zal dan in de "grotere" afbeelding hetzelfde patroon moeten ontdekken als in de "kleinere", en kijken of dit matcht.
Het testen echter of twee afbeelingen op elkaar lijken is een stuk geavanceerder. Je moet bijvoorbeeld eerst goeie criteria definieren wat je onder "op elkaar lijken" verstaat. Ga je kijken naar vormen, kleuren, luminantie? En in welke mate tellen ze mee? Goed voorbeeld van de moeilijkheidsgraad is dat Altavista een aantal jaren terug bij de image-search een optie had "find images that are similar to this image", welke uiterst treurige resultaten opleverde. Als je dit dus wilt realiseren zou het allemaal een stuk ingewikkelder worden en zal je de meer geavanceerde beeldbewerkingstechnieken moeten gebruiken.
De taal waarin je zoiets doet moet in principe niet heel veel uitmaken, maar ik zou wel Java of C++ adviseren.
There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -