• 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.

0 głosów
580 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 Mentor (354,800 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 Mentor (354,800 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 Mentor (354,800 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ź 858 wizyt
0 głosów
1 odpowiedź 516 wizyt
pytanie zadane 10 lutego 2018 w JavaScript przez Alterwar Dyskutant (7,650 p.)
0 głosów
1 odpowiedź 455 wizyt
pytanie zadane 30 kwietnia 2022 w Python przez niezalogowany

93,600 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,085 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

Kursy INF.02 i INF.03
...