Witam
Jestem tu nowa i wlasciwie poczatkujaca w programowaniu w jezyku C#.
Moj problem jest nastepujacy.
Mam kamerke ccd uEye i Biblioteki .NET do niej. Potrafie pokazac w PictureBox Live Image z kamerki.
Chcialabym jednak pokazac nie poszczegolne klatki (frames), tylko roznice miedzy sasiadujacymi klatkami dodana na czerwony kanal aktualnej klatki... Cos w tym stylu:
roznica( 8bit) = Frame2 - Frame1
wyswietlona klatka:
FrameShown (24bit RGB) = (Frame2 Red + roznica, Frame2 Green, Frame2 Blue)
tzn. tak aby kanal Red wyswietlanej FrameShown byl powiekszony o roznice miedzy Frame 2 i Frame 1.
Wiem jak to matematycznie rozwiazac. Nie wiem tylko jak zapisac w pamieci 2 sasiadujace Frames. Podejrzewam, ze trzeba cos wykombinowac z Sequence lub Queue.
Na stronach uEye sa przyklady funkcji w C++, ale jak je zastosowac w C# nie mam pojecia.
http://www.cihansari.com/vistek/uEye_Ma ... trobe.htmlMoze ktos ma pomysl jak to rozwiazac w C#.
Kod:
private void Frame1Event(object sender, EventArgs e)
{
// convert sender object to camera object
uEye.Camera camera = sender as uEye.Camera;
Int32 s32MemID;
camera.Memory.GetActive(out s32MemID);
camera.Memory.Lock(s32MemID);
camera.Memory.ToBitmap(s32MemID, out bitmap1);
camera.Memory.Unlock(s32MemID);
}
Naiwnym rozwiazaniem jakie do tej pory udalo mi sie napisac jest wprowadzenie kopi tej samej metody Frame2Event dla bitmap2 i zastosowanie jakiejs Funkcji
funkcja(bitmap1,bitmap2) aby obliczyc FrameShown i pokazac ja w PictureBox. To rozwiazanie wydaje mi sie jednak zle.
Bardzo prosilabym o kilka uwag i porad.
Pozdrawiam
Asia