python ( np ) tömb xy elemei

 ( virtualm | 2019. augusztus 13., kedd - 2:36 )

Sziasztok !

Van egy kicsi python script, amiben a kamera képét ( vagy annak elemeit ) egy tömbben tárolja. Ennek a változásait elemzi és megállapítja, hogy volt e mozgás. Engem az elmozdulsás iránya, mértéke érdekelne.

Hogyan lehet kinyerni a tömbből az x,y értékeit?

A script : https://pastebin.com/DNSF7rpT

A kimenet ( részlet ) :
Motion detected!
a = [[62 58 0 ... 0 0 0]
[62 42 30 ... 36 0 0]
[52 30 30 ... 0 0 0]
...
[12 14 20 ... 20 20 0]
[ 0 12 24 ... 16 16 0]
[ 0 0 30 ... 0 0 0]]
x = ?
y = ?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nem vagyok benne biztos, hogy jól értem, mit csinálsz, de ha az 'a' - t nem vágod felül a saját hosszával (azaz inkább pl. a_len = np.sqrt(...), akkor print('x = ', a['x']) és print('y = ', a['y']) amit keresel. Persze ekkor if (a_len > 60).sum() > 10: és print('a_len = ', a_len) kell.

Amit csinálni szeretnék az az, hogy megtudjam, hogy a kamera előtti tárgy milyen x,y irányban és milyen mértékben mozdult el, de ezt "gyorsan" és akkor amikor a mozgás történik. A javasolt megoldás egy csomó hibát dobott, valószínú, hogy a nem megfelelő módú alkalmazásaim miatt.

Ha adottak a tárgyat leképező "folt" (a>60) koordinátai, akkor a "tömegközéppont" elmozdulását lehetne számítani.(Speciálisan minden pont tömege 1.)

Valamely időpontban:
tmkp_x=(x1+...+xn)/n
tmkp_y=(y1+...+yn)/n

--
eutlantis

Akár adottak is lehetnek, ha kell, de az újabb erőforrást, időt emészt fel.
Izgalmas, érdekes amit írtál. Köszönöm az ötleteidet.

Ha arra vagy kíváncsi, hogy a 60-nál nagyobb értékeknek mi az indexe:

x,y=np.where(a>60)

print(x,y)
print( a[x,y] )

x,y egy-egy np.array, amelyek külön, de a megfelelő sorrendben tartalmazzák a koordinátákat.

--
eutlantis

Köszönöm az ötleteket.

Tulajdonképpen kerestem és találtam egy scriptet az eredeti picamera dokumentációjában: https://picamera.readthedocs.io/en/release-1.13/api_array.html#pimotionarray és azt szeretném átalakítani a saját céljaimnak megfelelően. Ezt próbálom megérteni és az aktuális x,y értékeket kinyerni.

Azt már látom, hogy a számomra egy csomó felesleges dolgot tartalmaz. Előbb kamera setupot kéne csinálnom, felbontást, munkaterületet csökkenteni, stb, hogy gyorsítani tudjam az x,y feldolgozásomat.

Este ( éjjel ) tudom folytatni.
A linket, javítottam, szerkesztettem.