Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prekid programa sa q i zatvaranje kamere ne radi

[es] :: Python :: Prekid programa sa q i zatvaranje kamere ne radi

[ Pregleda: 942 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lega99

Član broj: 82119
Poruke: 1087



+16 Profil

icon Prekid programa sa q i zatvaranje kamere ne radi18.02.2023. u 14:14 - pre 13 meseci
Code (python):

import cv2
import os
import time

# Putanja direktorijuma za skladištenje slika
IMAGE_DIR = '/home/dragan/Videos/Kamera/slike'

def save_image(frame):
    # Generisanje imena slike na osnovu trenutnog vremena
    image_name = os.path.join(IMAGE_DIR, f'{str(time.time())}.jpg')
    # Cuvanje slike u direktorijumu
    cv2.imwrite(image_name, frame)

# Pokretanje kamere
cap = cv2.VideoCapture(0)

# Inicijalizacija promenljive za prethodni kadar
prev_frame = None

def frame_diff(frame1, frame2):
    # Pretvaranje u nijanse sive boje za smanjenje kompleksnosti
    gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
    gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
    # Izracunavanje apsolutne razlike izmedju kadrova
    frame_diff = cv2.absdiff(gray1, gray2)
    # Izracunavanje ukupne promjene piksela na kadru
    return frame_diff.sum()

# Glavna petlja za snimanje slika
while True:
    ret, frame = cap.read()
    if ret:
        # Prikazivanje kadra
        cv2.imshow('frame', frame)
        # Provera da li je pritisnuta tipka 'q' za prekid petlje
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        # Provera za pokret u kadru
        if prev_frame is not None and frame_diff(frame, prev_frame) > 1555000:
            save_image(frame)
        # Cuvanje trenutnog kadra
        prev_frame = frame.copy()

    if cv2.getWindowProperty('frame', cv2.WND_PROP_VISIBLE) < 1:
        break

# Oslobadjanje kamere i zatvaranje prozora
cap.release()
cv2.destroyAllWindows()



Uzima screnshotove kod motin detecta ali kad hocu da prekinm program i uhsim kameru sa "q" ne reaguje. Koliko sam uspeo da probunarm cv2 je za python 2.7 a sta je za puthon 3.10 koji a imam to nisam nasao. Iako sa 100x napisao chatGPT da imam samo python 3 on je skrpio ovo i ubedjuje me da je sve ok a ono ne radi. Treci dan pokusava nebulonim kombinacija ubaci ovo ili pno i uspeva mu da totalno shebe ceo kod.Posto Arch i linux nemaju generacije onda listam stranice i trazim pocetak koda kad je to davalo sliku i na motion detect pravilo slike na disku.
 
Odgovor na temu

lega99

Član broj: 82119
Poruke: 1087



+16 Profil

icon Re: Prekid programa sa q i zatvaranje kamere ne radi18.02.2023. u 23:24 - pre 13 meseci
Resio sam problem. Prepametn chatGpt stalno je davao savete klikni na prozor u kome je video, klikni na terminal u kome je startovan payton. Sustina nema nikakvog kliktanja samo kik na "q" i sve zavrseno kako treba. Toliko hvale taj proglram a on ako predlaze azuriranje uvek nesto uprska i voza coveka satima, treba svaku verziju cuvati jer ne postoj generaciski sitem pa kad uprska vratis se na prethodnu verziju.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Prekid programa sa q i zatvaranje kamere ne radi19.02.2023. u 09:24 - pre 13 meseci
Ja tebe uopšte ne razumem.
Stalno se nešto buniš, valjda da ispadneš pametan. Svima je poznato da ChatGPT ume da pogreši.
Sa druge strane, ChatGPT je napisao program KOJI TI NISI ZNAO DA NAPIŠEŠ!

U stvari, ni ja ne bih znao, nisam uopšte znao za cv2 biblioteku.

I onda, kada napiše program KOJI RADI, ti se buniš jer ne znaš da pritisneš Q!

A sa tolikom količinom grešaka u kucanju, ne znam ni kako je AI uspeo da shvati šta hoćeš. Meni je teško da razumem šta si napisao...
 
Odgovor na temu

B3R1
Berislav Todorovic
NL

Član broj: 224915
Poruke: 794



+630 Profil

icon Re: Prekid programa sa q i zatvaranje kamere ne radi19.02.2023. u 11:10 - pre 13 meseci
Mora da sam ja glup ili ne umem da citam, ali kaze:

https://www.geeksforgeeks.org/python-opencv-waitkey-function/

"waitkey() function of Python OpenCV allows users to display a window for given milliseconds or until any key is pressed".

U programu gore kaze cv2.waitkey(1), sto znaci da on ceka 1ms da bi neko pritisnuo 'q'. Jedino da "legnes" na q taster. Takodje, cemu ovo:

Citat:
cv2.waitKey(1) & 0xFF == ord('q')

To neko zbunjivanje neprijatelja, a? :-) Ako cv2.waitkey() vec vraca kod pritisnutog tastera, ne vidim svrhu ove logicke operacije gore.
 
Odgovor na temu

Panta_
Aleksandar Pantić
Kragujevac

Član broj: 214959
Poruke: 790



+162 Profil

icon Re: Prekid programa sa q i zatvaranje kamere ne radi19.02.2023. u 15:51 - pre 13 meseci
Citat:
U programu gore kaze cv2.waitkey(1), sto znaci da on ceka 1ms da bi neko pritisnuo 'q'. Jedino da "legnes" na q taster.

Funkcija waitKey(1) čeka 1ms pre nego što pročita sledeći frejm i vraća kod pritisnutog tastera ili -1 ako taster nije pritisnut. Dok na primer waitKey(0) čeka neograničeno dok taster ne bude pritisnut da nastavi izvršavanje petlje tj. pročita sledeći frejm.

Citat:
Help on built-in function waitKey:

waitKey(...)
waitKey([, delay]) -> retval
. @brief Waits for a pressed key.
.
. The function waitKey waits for a key event infinitely (when \f$\texttt{delay}\leq 0\f$ ) or for delay
. milliseconds, when it is positive. Since the OS has a minimum time between switching threads, the
. function will not wait exactly delay ms, it will wait at least delay ms, depending on what else is
. running on your computer at that time. It returns the code of the pressed key or -1 if no key was
. pressed before the specified time had elapsed. To check for a key press but not wait for it, use
. #pollKey.
.
. @note The functions #waitKey and #pollKey are the only methods in HighGUI that can fetch and handle
. GUI events, so one of them needs to be called periodically for normal event processing unless
. HighGUI is used within an environment that takes care of event processing.
.
. @note The function only works if there is at least one HighGUI window created and the window is
. active. If there are several HighGUI windows, any of them can be active.
.
. @param delay Delay in milliseconds. 0 is the special value that means "forever".


Citat:
Ako cv2.waitkey() vec vraca kod pritisnutog tastera, ne vidim svrhu ove logicke operacije gore.

Ako znaš kod za pomenuti taster, onda može i if cv2.waitKey(1) == kod:..., ili cv2.waitKey(1) == ord('q').
 
Odgovor na temu

lega99

Član broj: 82119
Poruke: 1087



+16 Profil

icon Re: Prekid programa sa q i zatvaranje kamere ne radi19.02.2023. u 16:21 - pre 13 meseci
Citat:
djoka_l: Ja tebe uopšte ne razumem.
Stalno se nešto buniš, valjda da ispadneš pametan. Svima je poznato da ChatGPT ume da pogreši.
Sa druge strane, ChatGPT je napisao program KOJI TI NISI ZNAO DA NAPIŠEŠ!

U stvari, ni ja ne bih znao, nisam uopšte znao za cv2 biblioteku.

I onda, kada napiše program KOJI RADI, ti se buniš jer ne znaš da pritisneš Q!

A sa tolikom količinom grešaka u kucanju, ne znam ni kako je AI uspeo da shvati šta hoćeš. Meni je teško da razumem šta si napisao...

Sta sad tebi smeta, da si uopste citao sta pisem procitao bi da gresim kod kucanja i da zato kad komunicirm sa ChatGPT 10x proveravam sta sam mu napisao. Na forumu iskucm onako nabrzaka zato i ima gresaka. Sto bi se ja pravio pametan, program me savetuje pogresno i sta treba da hvalim na sa usta. Nisam pytonovac niti sam bio, pokusavam samo da iskoristim hvaljeni chatGPT za nesto sto meni treba i onda to ispadne nocna mora. Sta sad treba da se svadjam sa tobom i da dokazujem da mi daje pogresne instrukcije, samo q a ne klikni na prozor gde je slia pa onda klikni na terminal gde je startovan program to je njegovo uputsvo a nista od toga ne treba samo treba kliknuti a tastaturi q. Pato je 2 program koji je uspo da napise i da radi, ostale je napisao @Panta_. Pa ChatGPT treba da radi za mene a ne ja za njega, mene su tako ucili na faksu da kmp sluzi coveku a ne covek kompu a ti to upravo zagovaras, ne znam da napisem program ok pa zato sluzi chatGPT da ga on napise AI. Ako ti toliko smeta moje pisanje, ima valjda ignore, stavis me na ignore i ne vidis me. Vidis tamo na drugom forumu vasoj konurenciji, samo odabrani smeju da grde program i daju zamerke, ostalima zabrane pisanje ili brisu postove. Ti odabrani nista "lepse" ne pisu od mene o programu.

@B3R1,
Pokusavam da shvatim bare nesto od pythona a provenstveno da mi chatgpt AI uradi ono sto ja zelim , neki programcic koji mi nedostaje, jednostavan nikakva naucna fantastika. :)
Uhvati on to q ali ne kako chatgpt daje savet nego kad mi dosadi klik na q i gotovo. Hvala na linku potrudicu se da procitam i da mi Chatgpt prevede (mislio google translate) jer ovaj prvi prevede deo i zaglavi, posle cu da pustim da mi ko slabovidnom cita prevod, dobra stvar skinuo sam tako neke knjige, legnem pustim i slusam a tamo neka riba cita lepo razgovetno a ja uzivam. Ono citirano ispada da je zbunjivanje nepriatelja jer sam nasao nesto slicno nema & 0xFF a prekida izvrsenje na esc taster a cifra je bila ne 1ms nego 25. Progam je prosta upotreba web kamere koa gleda u jedan prostor i ako se nesto pomeri u tom prostrou napravi .jpg file na disku i tako radi dok ne prepuni disk ili ga ne prekinem sa q
Ima i IF sa drugom cifrom gde ako to zadovolji radi prekid programa.
 
Odgovor na temu

[es] :: Python :: Prekid programa sa q i zatvaranje kamere ne radi

[ Pregleda: 942 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.