Metoda na szybszą analizę grafiki z kamerki - Scanline?

0

Witam, chciałbym przetwarzać obraz z kamerki w Delphi 7.
Obraz z kamerki odbieram dzięki komponentowi DSPack, następnie kopiuję go dwukrotnie do dwóch osobnych komponentów Image.
Później aktualizuję co 1ms obraz w Image1 tak, aby był taki sam jak w kamerce.
Natomiast Image2 służy mi jako obraz wzorcowy.
Następnie sprawdzam po kolei każdy piksel - jeśli piksel w Image1 różni się od piksela w Image2 na tej samej pozycji to wtedy zaznaczam położenie tego piksela rysując kropkę na tej samej pozycji w Image3.

Problem w tym, że aplikacja działa bardzo wolno (ok. 0,25 FPS).
Próbowałem użyć do tej operacji komponentów DelphiX (korzystając z DXDraw), niestety rezultaty były gorsze niż na Image'ach.
Zastanawiam się jak można zrobić to szybciej?
Może dałoby się tu jakoś zastosować operację Scanline?
Jeśli tak, to jak?
A może jakieś inne rozwiązanie?

Przepraszam za chaotyczne pismo,
Proszę o pomoc,
Pozdrawiam,
Defozo

0

Może dałoby się tu jakoś zastosować operację Scanline?
Jeśli tak, to jak?

Sprawdź. Dzięki temu: (a) dowiesz się (b) przestaniesz nam zawracać głowę niepotrzebnymi pytaniami

0

Zamiast TImage użyj samej TBitmap tam gdzie możesz.
No i do odczytu/zapisu pikseli użyj właśnie scanline czytając/pisząc wartości bezpośrednio z/do bufora pikseli, z pominięciem Canvas'ów.

Jak? Wystarczy poszukać. Daleko nie trzeba:
http://4programmers.net/Delphi/Gotowce/ScanLine_-_kontrast,_nasycenie,_negatyw,_przyciemnienie,_rozja%C5%9Bnienie,_rozmycie,_sepia,_skala_szaro%C5%9Bci,_wykucie,wyp%C5%82owienie,_zamiana_RGB_i_inne..

0

Ale jak mogę za pomocą Scanline sprawdzić, czy piksele różnią się o jakąś wartość w porównaniu z innymi pikselami?

0

scanline zwraca wskaźnik na piksel. Trzeba tylko odczytać wartość wskazywaną.

LINK DO PRZYKŁAD JUŻ DAŁEM

adf88 napisał(a)

http://4programmers.net/Delphi/Gotowce/ScanLine_-_kontrast,_nasycenie,_negatyw,_przyciemnienie,_rozja%C5%9Bnienie,_rozmycie,_sepia,_skala_szaro%C5%9Bci,_wykucie,wyp%C5%82owienie,_zamiana_RGB_i_inne..

1 użytkowników online, w tym zalogowanych: 0, gości: 1