- sh4d0w: Netflix? Ugyan, VW előfizetés!
- Elektromos rásegítésű kerékpárok
- WhrlpoolMind: Az eredeti lemez utánozhatatlan illata
- sziku69: Fűzzük össze a szavakat :)
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- Luck Dragon: Asszociációs játék. :)
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- sziku69: Szólánc.
- Mr Dini: Mindent a StreamSharkról!
- GoodSpeed: AMD Ryzen 7 7700X vs AMD Ryzen 9 9900X Cinebench R23 & R24 Benchmarkokban mérve
-
LOGOUT
Új hozzászólás Aktív témák
-
Micsurin
nagyúr
válasz
dabadab #19012 üzenetére
Na azóta sikerült haladni is a szakdolgozattal végre hála a nyárnak és az időnek, a végén még februárban kint leszek...
Kód gatyába rázva a teljesítményt amit akartam megnyertem végre értelmesen fut viszont még mindig szórakoztat az a "villódzás" és ötletem sincs már miért maradt meg még mindig ami csak azért ciki mert ilyenkor eltűnik a képről a körívem és értelemszerűen null problémákba futok.
Pusztán elméleti síkon ha ezek a függvények adottak:
serial_Read(); -> Gondolom egyértelmű.perspective_transform(); -> Transzformációs mátrix alapján előállít egy kb felülnézeti képet.
reverse_perspective_transform(); -> ^ eredetit adja vissza a fentebbiből.
preprocess_frame(); -> Egy konyhakész képeket ad vissza, az alap képen elvégzi az elmosást a szürke árnyalatokat az élkiemelést (ezek mind OpenCV beépítettek nem nagy téma), meghívja a transzformálást majd arra a vonal felismerést és visszatranszformálást zárásképp. A madártávlatival és a visszatranszformálttal térünk vissza.
draw_circle(); -> Serialról olvasott érték alapján rajzol egy kört. Ha nincs értelmes érték akkor 0 vagy előző értelmes érték alapján jön vissza a kör. (első futásra 0 utána mindig az előző valid érték alapján) A kör mindig úgy van a sugár alapján pozícionálva, hogy ha 0 fok jönne vissza akkor kb egy egyenes jelenjen meg középen körív által. Ehhez az előző elmozdulást alapul véve mindig balra vagy jobbra van kicsit eltolva.
A main loop pedig ebben a sorrendben hív mindent:
Serialt meghívja ezután ráhívja a preprocess_frame-et majd itt a visszajött madártávlatira ráhívja a draw_circle a kapott Serial értékkel. Ekkor megjelenítjük mind a visszatranszformált képet a felismert vonalakkal mind a madártávlatit amire csak a kört van kirajzolva. Ez mind jó és szép végre elértem, hogy ~27-30FPS-el futunk 560p-n.Na most az a gond, hogy rendszeresen jön vissza 0 mikor nem kéne ezért az amúgy szép folyamatosan kirajzolt kör vissza visszaáll középre vagy épp nem kerül kirajzolásra (kivétel nincs, nem fut hibára csak ha épp a körívet akarok szín alapján kikeresni a képen nem lesz ott... akkor már jön a kivétel.) Mintha a draw_circle(); nem kerülne meghívásra...
Még mindig az a hibája tippre, hogy lusta voltam párhuzamosítani vagy a logika lenne rossz a sorrendet tekintve, hogy mi miből mit hív?
Próbáltam szokni a Pythonos párhuzamosítást de ez valami kegyetlen .NET után. Inkább reszeltem egy hónapot a kódot, hogy nyerjek mindenhol még némi futási időt csak ne kelljen szálazzak de gondolom nem fogom megúszni...
Azért sántít, hogy valami hívási logika hiszti lesz a háttérben és nem szálkezelési mert sem a teljesítmény nem esik be sem a vonal felismerés. Egyszerűen tényleg mintha lennének esetek mikor nem kerül meghívásra a draw_circle()-öm.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- BESZÁMÍTÁS! ASROCK B550M R9 5900X 32GB DDR4 1TB SSD RTX 3080TI 12GB ZALMAN I3 NEO GIGABYTE 850W
- BESZÁMÍTÁS! AOC 24B1XHS 60Hz FHD IPS 7ms monitor garanciával hibátlan működéssel
- Panasonic TX-L47E5Y 47" LED TV eladó
- Bomba ár! Fujitsu LifeBook U727 - i3-7GEN I 16GB I 256SSD I 12,5" FHD I Cam I W11 I Garancia!
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
Állásajánlatok
Cég: FOTC
Város: Budapest