Kezdőoldal » Számítástechnika » Programozás » Kamera képét hogyan tudnám...

Kamera képét hogyan tudnám megkapni egy tömbben C# - ben?

Figyelt kérdés
Arra gondolok, hogy lennem egy 3 dimenziós tömb, és abba benne lenne minden képpont rgb értéke

2014. nov. 25. 19:38
1 2
 11/16 anonim ***** válasza:

Előző vagyok...nem tömbbe raktam az kimentet hanem kiírattam egy fájlba...de a tömbbe írás te is megtudod


A mozgásérzékelés nagyon kényes dolog. Jobban járnál fekete-fehér képpel mivel kevesebbet foglal és nem annyira érzékeny...nameg könnyebb dolgozni is vele.


A fölöttem lévők jó írták, hogy programnyelv nélkül kéne előbb utánanézz az egésznek. Van benne matematika is bőven.

Ha magad akarod megírni az algoritmust akkor ajánlom, hogy nézz utána az "optical flow" kifejezésnek.

Az algoritmus nagyon röviden:

1) Megkeresed a sarokpontokat. Kiszámolod a gradiens nagyságát és irányát. Abban a pontban ahol két irányból nagy a gradiens sarok pont található. A kép deriváltját egyszerű kiszámolni mivel a diszkrét deriválás annyit jelent, hogy az egymás melletti pixeleket kivonod egymásból.


[link]


2) Ha ez megvan akkor mindegyik sarokpontban alkalmazol egy költségfüggvényt. A költségfüggvény lehet simán egy 3x3-es ablakban (ahol a középen levő érték a sarokpont) levő pixel értékek szorzata vagy a négyzeteinek összege.


3) Jön a következő frame. A sarokpontok pozícióit megkeresed ezen a képen is és alkalmazod hasonlóan a fentiekhez a költségfüggvényt. De ezúttal alkalmazhatod a sarokpont körüli pixelekre is. Ha pl 5x5-es ablakon alkalmazod a 3x3-as költségfüggvényt kapsz 25 értéket (a költségfüggvényből kapott eredmények).


4) Számolsz egy hibát...azaz kivonod a 2-ben kapott értékből a fenti 25 számot egyenként. Négyzetre emeled, hogy legyen pozitív. Megkeresed a legkisebbet. A legkisebb pozíciója nyugalomban ugyanaz kell legyen mint az első képen a sarokpont pozíciója. (természetesen hagyhatsz egy pixelnyi hibát is)


Vagy simán kiszámolod a két képen a költségfüggvényt és a kettő kb egyenlő kell legyen.



Na de a fenti algoritmus nagyon az alap és nem megbízható.


Ajánlom figyelmedbe az opencv könyvtárat. Minden implementálva van már, a sarokpontok kiszámolása is és az optical flow is. Csak meg kell hívja őket.

2014. nov. 26. 19:33
Hasznos számodra ez a válasz?
 12/16 A kérdező kommentje:

Köszönöm a válaszokat, majd valamikor nekiugrok a "kötelező olvasmányoknak" :D.


És az megoldható, hogy azt is megtudja állapítani, hogy hol van a mozgás, mert olyat szeretnék csinálni, hogy projektor kivetíti a képet, nézi azt egy webkamera, és ha egy megadott részen van mozgás akkor történjen valami.


Tudom erre vannak programok de azok nem feleltek meg nekem, mert másokat akarok csinálni, de bonyolult elmagyarázni.

2014. nov. 27. 12:27
 13/16 anonim ***** válasza:

"hogy projektor kivetíti a képet, nézi azt egy webkamera"

Ugye tudod, hogy ez hatalmas baromság?

2014. nov. 27. 12:34
Hasznos számodra ez a válasz?
 14/16 A kérdező kommentje:
Jó, hülyén írtam, mert sietnem kellet, de a lényeg érthető, nem?
2014. nov. 27. 13:20
 15/16 anonim ***** válasza:

"És az megoldható, hogy azt is megtudja állapítani, hogy hol van a mozgás, mert olyat szeretnék csinálni"


Értem én, hogy sok mindent szeretnél és kérdezgetsz de olvassál is. A fenti algoritmust próbáld megérteni, nézz utána dolgoknak. Még a mozgás sebességét is meg tudod állapítani, nem csak a poz1cióját.

2014. nov. 27. 18:17
Hasznos számodra ez a válasz?
 16/16 A kérdező kommentje:
rendben, köszönöm a választ, akkor tényleg megoldható a tervem :)
2014. nov. 27. 20:38
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!