Witam. Mam pewien obrazek i muszę sprawdzić czy jest w nim dany kształt. Niestety z pewnych powodów nie mogę go pokazać, ale myślę że obejdzie się bez niego. A więc wszystkie kształty są tego samego koloru (zieleń), a tło jest czarne, więc to powinno ułatwić.
Kształty są w różnych kontach, lecz tylko do chyba max 30 stopni nie więcej, jednak za to o tych samych rozmiarach zawsze co też ułatwi sprawę.
I teraz chciałbym sprawdzić czy na obrazku jest np. zielony trójkąt. Jak to można najszybciej i najpewniej zrobić?
Myślałem aby prześledzić piksel po pikselu obrazek. Tzn trójkąt będzie szukało 3 zielonych pikseli w tych samych odstępach. Zacznie np. w lewym górnym rogu i będzie przesuwało 3 punkty o 1 piksel. Potem zacznie od nowa od lewej strony tylko że 1 piksel niżej i znowu. Jeżeli na któreś pozycji trafi że każdy piksel (punkt) będzie zielony to to najpewniej nasz trójkąt. Dla pewności kształty oznaczę jak największą ilością punktów by nie pomyliło.
Tylko jak to się ma ze strony wydajności i czy będzie to łatwo wykonalne w delphi? Czy myślicie że taka pętla sprawdzająca każde piksele jest dobrym rozwiązaniem? Może są jakieś gotowe rozwiązania w sieci? Ja niestety nie znalazłem ;/
Może da się to zrobić bardziej optymalnie?
Proszę o jakieś sugestie, pozdrawiam