• 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
58 wizyt
pytanie zadane 4 września w Python, Django przez mroczny123 Początkujący (280 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 przez adrian17 Ekspert (203,080 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 przez mroczny123 Początkujący (280 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 przez adrian17 Ekspert (203,080 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 przez mroczny123 Początkujący (280 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 przez adrian17 Ekspert (203,080 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ź 47 wizyt
0 głosów
1 odpowiedź 62 wizyt
0 głosów
1 odpowiedź 108 wizyt
pytanie zadane 8 września 2015 w C i C++ przez Nasos Obywatel (1,310 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

66,984 zapytań

113,890 odpowiedzi

241,330 komentarzy

46,940 pasjonatów

Przeglądających: 239
Pasjonatów: 9 Gości: 230

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...