• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python. Iterowanie po wszystkich pixelach ekranu.

Object Storage Arubacloud
0 głosów
392 wizyt
pytanie zadane 4 września 2019 w Python przez mroczny123 Początkujący (290 p.)

Witam. Napisałem w pythonie program który iteruje po wszystkich pixelach ekranu i wypisuje pozycję wszystkich czarnych pixeli. Tylko że pętla która iteruje po wszystkich pixelach ekranu trwa bardzo długu, a ja chce mieć wypisaną pozycję wszystkich czarnych pikseli w max 0.5 sekundy. Ma ktoś pomysł jak to zrobić?

Tu mój kod

import pyautogui, time, pynput.mouse

mouse = pynput.mouse.Controller()
x=0
y=0
while True:
    posXY=(x,y)
    x+=1
    if(x==1360):
        y+=1
        x=0
    if(pyautogui.pixel(posXY[0],posXY[1])==(0,0,0)):
       print("Czarny piksel znajduje się:"+posXY)

 

1 odpowiedź

0 głosów
odpowiedź 4 września 2019 przez adrian17 Ekspert (344,860 p.)
Bo za każdym razem robisz osobnego screenshota. Patrz dokumentacja:

https://pyautogui.readthedocs.io/en/latest/screenshot.html#pixel-matching
komentarz 4 września 2019 przez mroczny123 Początkujący (290 p.)
Faktycznie. Ale nawet jak robie tylko jednego screenshota to pętla która sprawdza wszystkie pixele tego scrreenshota trwa jakies 15minut. Da się jakoś jedną funkcją zwrócić pozycję wszystkich czarnych pixeli albo jakoś jeszcze przyspieszyć tą pętle? Ja potrzebuje miec zwrócone wszystkie czarne pixele w max 0.5 sekundy. Zakładam że na ekranie będe mieć tylko jednego czarnego pixela.
komentarz 4 września 2019 przez adrian17 Ekspert (344,860 p.)

Jasne. Zamiast wywoływać getpixel(), możesz wywołać getdata():

http://effbot.org/imagingbook/image.htm#tag-Image.Image.getdata

i przeiterować się po tym zbiorze pikseli.

komentarz 4 września 2019 przez mroczny123 Początkujący (290 p.)
A w jaki sposób odwołać się do tego zbioru? Sory że pytam ale na dokumentacji jest slabo wytlumaczone.
komentarz 4 września 2019 przez adrian17 Ekspert (344,860 p.)
Z tego co widzę, to jest jakaś iterowalna sekwencja. Pewnie najprościej jak sobie w interaktywnej konsoli to otworzysz i zobaczysz jaki to ma format.

Podobne pytania

0 głosów
1 odpowiedź 422 wizyt
0 głosów
1 odpowiedź 348 wizyt
pytanie zadane 10 lutego 2018 w JavaScript przez Alterwar Dyskutant (7,650 p.)
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 30 kwietnia 2022 w Python przez niezalogowany

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...