Napisalem program który wyszukuje w obrazie odpowiednie kolory i ich pozycje lecz nie jestem zadowolony z szybkosci jego działania. Jeżeli ma ktoś jakies propozycje na przyspieszenie jego działania prosze o pomoc.
TCanvas &PulpitCanvas = *new TCanvas();
Graphics::TBitmap *Bmp = new Graphics::TBitmap;
TColor color;
Bmp->Width = StrToInt(Edit4->Text)-StrToInt(Edit3->Text);
Bmp->Height = StrToInt(Edit6->Text)-StrToInt(Edit5->Text);
Bmp->Canvas->CopyRect(Rect(0,0, Bmp->Width, Bmp->Height), &PulpitCanvas,
Rect(StrToInt(Edit3->Text), StrToInt(Edit5->Text), StrToInt(Edit4->Text), StrToInt(Edit6->Text)));
oknoy=Bmp->Height;
oknox=Bmp->Width;
for(y=0;y<oknoy;y++)
for(x=0;x<oknox;x++)
{
R=GetRValue(Bmp->Canvas->Pixels[x][y]);
if (R==226){
G=GetGValue(Bmp->Canvas->Pixels[x][y]); //pobieranie zielonego koloru do zmienne
B=GetBValue(Bmp->Canvas->Pixels[x][y]); //pobieranie niebieskiego koloru do zmiennej
if (G==235) if (B==247)
{
Label17->Caption="KOLOR 1";
Form1->Refresh();
}
}
if (R==204){
G=GetGValue(Bmp->Canvas->Pixels[x][y]); //pobieranie zielonego koloru do zmiennej
B=GetBValue(Bmp->Canvas->Pixels[x][y]); //pobieranie niebieskiego koloru do zmiennej
if (G==0) if (B==0)
{
Label17->Caption="KOLOR 2";
Form1->Refresh();
}
}
if(R==252)
{
G=GetGValue(Bmp->Canvas->Pixels[x][y]); //pobieranie zielonego koloru do zmiennej
B=GetBValue(Bmp->Canvas->Pixels[x][y]); //pobieranie niebieskiego koloru do zmiennej
if (G==253) if (B==255)
{
Label17->Caption="KOLOR3";
Form1->Refresh();
}
}
}