Hi!
Ich möchte mit einer Funktion überprüfen ob es eine Bildausschnitt in einem Bild vorkommt. Hätte einer eine Idee für eine Lösung (da meine 2 versuche kläglich gescheitert sind)
Programmversuch sah so aus (Ist allerdings sehr Unübersichtlich und Fehlerhaft. Also nur falls der Quellcode jemanden Interessiert):
//---------------------------------------------------------------------------
void bool FindPart(Graphics::TBitmap *Original, Graphics::TBitmap * part) //part ist Ausschnitt der überprüft werden soll,
//Original ist komplettes Bild
{
int h=Original->Height;
int w=Original->Width;
int h_ref=part->Height;
int w_ref=part->Width;
int same_x=0; //übereinstimmung in X richtung
int same_y=0; //übereinstimmung in Y richtung
int i=0;
bool out=false; //Neuanfang Realisieren
BYTE * Reihe_ref = (BYTE*) part->ScanLine[1];
for(int k=0;kScanLine[k+1];
if(i>=(w-w_ref)) i=0;
for(i=i; i=w_ref) //1. Reihe gleich
//nächste reihe überprüfen
{
same_y++;
Reihe_ref =(BYTE*) part->ScanLine[same_y];
if(same_y>=h_ref) //alle Reihen
{
return true; //GEFUNDEN!!
}
i-=same_x;
i++;
same_x=0;
out=true;
break;
}
}
else
{
k-=same_y;
i-=same_x;
same_x=0;
same_y=0;
if(out)
{part->ScanLine[1];
out=false;
}
}
}
}
//Fehler… nicht gefunden…
return false;
}