[PYTHON] Ich erhalte eine Fehlermeldung, wenn ich opencv in pyautoGUI einfüge

Überblick

RPA mit Python machen Bei Verwendung von Pyautogui Es gibt Zeiten, in denen Sie Toleranz- oder Graustufenerkennung durchführen möchten. Zu diesem Zeitpunkt muss opencv eingefügt werden.

Ich konnte es jedoch doch nicht benutzen. Ich werde die Fehlerdetails und Problemumgehungen veröffentlichen.

Fehlerinhalt

pos = pyautogui.locateCenterOnScreen(GetImage(imgname), region=inputregion) Dieser Code funktionierte, hörte aber plötzlich auf zu arbeiten. pip opencv-python, pos = pyautogui.locateCenterOnScreen(GetImage(imgname), region=inputregion, grayscale=True) Ich habe versucht, es durch Umschreiben der Graustufe anzupassen.

output


============================= test session starts =============================
platform win32 -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
================================== FAILURES ===================================
    pos = pyautogui.locateCenterOnScreen(GetImage(imgname), region=inputregion,grayscale=True)
C:\tools\miniconda3\envs\rpa2\lib\site-packages\pyautogui\__init__.py:175: in wrapper
    return wrappedFunction(*args, **kwargs)
C:\tools\miniconda3\envs\rpa2\lib\site-packages\pyautogui\__init__.py:207: in locateCenterOnScreen
    return pyscreeze.locateCenterOnScreen(*args, **kwargs)
C:\tools\miniconda3\envs\rpa2\lib\site-packages\pyscreeze\__init__.py:400: in locateCenterOnScreen
    coords = locateOnScreen(image, **kwargs)
C:\tools\miniconda3\envs\rpa2\lib\site-packages\pyscreeze\__init__.py:360: in locateOnScreen
    retVal = locate(image, screenshotIm, **kwargs)
C:\tools\miniconda3\envs\rpa2\lib\site-packages\pyscreeze\__init__.py:340: in locate
    points = tuple(locateAll(needleImage, haystackImage, **kwargs))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
needleImage = array([[31, 31, 31, ..., 31, 31, 31],
       [31, 31, 31, ..., 31, 31, 31],
       [31, 31, 31, ..., 31, 31, 31],
    ...31, 31, 31, ..., 31, 31, 31],
       [31, 31, 31, ..., 31, 31, 31],
       [31, 31, 31, ..., 31, 31, 31]], dtype=uint8)
haystackImage = array([[60, 60, 60, ..., 60, 60, 60],
       [60, 60, 60, ..., 60, 60, 60],
       [60, 60, 60, ..., 60, 60, 60],
    ...16, 16, 16, ..., 16, 16, 16],
       [16, 16, 16, ..., 16, 16, 16],
       [16, 16, 16, ..., 16, 16, 16]], dtype=uint8)
grayscale = True, limit = 1, region = (0, 945.0, 240.0, 135.0), step = 1
confidence = 0.999
    def _locateAll_opencv(needleImage, haystackImage, grayscale=None, limit=10000, region=None, step=1,
                          confidence=0.999):
        """
        TODO - rewrite this
            faster but more memory-intensive than pure python
            step 2 skips every other row and column = ~3x faster but prone to miss;
                to compensate, the algorithm automatically reduces the confidence
                threshold by 5% (which helps but will not avoid all misses).
            limitations:
              - OpenCV 3.x & python 3.x not tested
              - RGBA images are treated as RBG (ignores alpha channel)
        """
        if grayscale is None:
            grayscale = GRAYSCALE_DEFAULT
    
        confidence = float(confidence)
    
        needleImage = _load_cv2(needleImage, grayscale)
        needleHeight, needleWidth = needleImage.shape[:2]
        haystackImage = _load_cv2(haystackImage, grayscale)
    
        if region:
>           haystackImage = haystackImage[region[1]:region[1]+region[3],
                                          region[0]:region[0]+region[2]]
E           TypeError: slice indices must be integers or None or have an __index__ method
C:\tools\miniconda3\envs\rpa2\lib\site-packages\pyscreeze\__init__.py:202: TypeError
=========================== short test summary info ===========================
FAILED test_iqctrl.py::test_iqcreate - TypeError: slice indices must be integ...
============================== 1 failed in 2.03s ==============================

Umgebung

Eine Liste der von Ihnen verwendeten Python-Module.

conda install python
pip install pyautogui
pip install rope yapf black autopep8 pylint pytest
pip install tqdm
pip install pyperclip
pip install pyodbc
pip install cx_Oracle

Ich habe hier opencv-python hinzugefügt.

Das Betriebssystem ist Windows 10.

Fazit

Die Funktion _locateAll_opencv wurde in python3.x nicht getestet und befindet sich in der Entwicklung. Ich erhalte eine Fehlermeldung wie "Der Index, der das Array schneidet, muss eine Ganzzahl sein". Ich konnte mich nicht einmischen, weil es im Pyautogui-Modul ist.

Problemumgehung

Derzeit entweder mit 2.X ertragen oder opencv aufgeben. Wenn beides nicht akzeptabel ist, müssen Sie möglicherweise auf die Suche nach Graustufen und mehrdeutigen Bildern verzichten.

Wenn Sie die Funktion _locateAll_opencv selbst neu schreiben können, wäre es hilfreich, wenn Sie die Anforderung an Github ziehen könnten.

Verwandte Materialien

Recommended Posts

Ich erhalte eine Fehlermeldung, wenn ich opencv in pyautoGUI einfüge
Ich habe eine Fehlermeldung erhalten, als ich opencv mit Raspeye in Python3 eingefügt habe [Remedy]
Wenn ich eine Fehlermeldung mit Pylint unter Windows Atom erhalte
Beim Speichern mit OpenCV ist ein Fehler aufgetreten
Wenn ich einen Chrom-Treiberfehler in Selenium bekomme
Beim Versuch meinheld + WebSocket + mongodb wird eine Fehlermeldung angezeigt
Wenn beim Python-Scraping ein Fehler auftritt (Anforderungen)
Im Chainer-Tutorial wird beim Importieren eines Pakets eine Fehlermeldung angezeigt. (spotten)
Ich erhalte eine Fehlermeldung, wenn ich ein Python-Plug-In in Visual Studio Code in die pyenv-Umgebung einfüge
Ich erhalte eine Fehlermeldung beim Import von Pandas.
Beim Versuch, maec 4.0.1.0 mit pip zu installieren, wird eine Fehlermeldung angezeigt
Ich erhalte eine Fehlermeldung mit allen yum-Befehlen
Importfehler: Der Name'Flask 'kann nicht importiert werden, wenn der Dateiname in Flask flask.py lautet
Ich erhalte eine java.util.regex.PatternSyntaxException, wenn ich einen String in PySpark teile
Wenn OpenCV hconcat aus irgendeinem Grund einen Fehler verursacht
Bei der Verwendung von Tensorboard mit Pytorch ist ein Fehler aufgetreten
Ich erhalte eine Fehlermeldung bei der Installation von scipy auf t2.micro, weil ich nicht genügend Speicher habe
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Ich möchte eine Fehlermeldung auf Japanisch mit dem Django-Passwortänderungsformular ausgeben
Ich erhalte eine Fehlermeldung, wenn ich versuche, Python mit pyenv in Catalina auf 3 Serien zu erhöhen
Ich habe einen Fehler in vim oder zsh in der Python 3.7-Serie
Ich erhalte [Fehler 2055], wenn ich versuche, mit Heroku eine Verbindung zu MySQL herzustellen
Was tun, wenn beim Ausführen von "certbot erneuern" in der CakePHP-Umgebung eine Fehlermeldung angezeigt wird?
Ich habe einen Fehler bekommen, als ich versucht habe, Luigi parallel in Windows zu verarbeiten, aber die Lösung
Ich bekomme einen UnicodeDecodeError mit mecab-python3
Ein Fehler beim Einfügen von Pygame in Python3 auf Himbeer-Pi wurde behoben
Ich erhalte einen ImportError in appengine_config.py
Ich erhalte einen KeyError in pyclustering.xmeans
Ich habe einen AttributeError erhalten, als ich die offene Methode in Python verspottet habe
Setzen Sie Python, Numpy, OpenCV3 in Ubuntu14
Ich habe eine Fehlermeldung erhalten, als ich Composer Global Require Laravel / Installer ausgeführt habe
Ich habe einen SSL-Fehler erhalten, als ich Anaconda in einer neuen Umgebung installiert habe, also habe ich ihn behoben (Windows10, Anaconda3-2019.10).
Ich erhalte einen Betriebssystemfehler: [Errno 8] Fehler beim Ausführen des Formats, wenn eine Flask-Anwendung mit einem Python-Befehl ausgeführt wird
Beim Imputator von Scikit-Learn ist ein Fehler aufgetreten
Bei Verwendung von @property in Python wird ein Attribut nicht festgelegt
Ich habe eine Fehlermeldung erhalten, als ich Meteor Add Accounts-Passwort ausgeführt habe
Beim Versuch, Xgboost und seine Lösung zu installieren, ist ein Fehler aufgetreten
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Ich habe einen unbekannten Fehler in Django erhalten: TypeError: resolve () hat ein unerwartetes Schlüsselwortargument'strict 'erhalten.
Wenn ich versuche, pip zu aktualisieren, werde ich nach einem Fehler aufgefordert, ein Upgrade durchzuführen und eine unbegrenzte Schleife durchzuführen
[OSX] [pyenv] Was tun, wenn in pip ein SSL-Fehler auftritt?
Ich habe Python 2.7 in Sakura VPS 1 GB installiert.
Die Geschichte eines Fehlers in PyOCR
Ich habe Linux (Ubuntu) in VAIO SX14 integriert.
Ich kann das Element in Selen nicht bekommen!
Was tun, wenn beim Versuch, eine Nachricht in task.loop () unmittelbar nach dem Start zu senden, eine Fehlermeldung angezeigt wird?
Ich erhalte den Fehler ~ ist Null, Singular U, wenn eine verteilte, gemeinsam verteilte Matrix von der linearen Schicht an MultivariateNormal übergeben wird
Problemumgehung, wenn beim Versuch, PySide mit pip zu installieren, eine Fehlermeldung angezeigt wird
[Python] Was tun, wenn bei send_keys in Headless Chrome ein Fehler auftritt?
Bei Verwendung des Dialogfelds zum Öffnen des Verzeichnisses in Tkinter wird ein seltsames Fenster angezeigt
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
[Python] Dinge, die überprüft werden müssen, wenn in Django ein Unicode-Dekodierungsfehler auftritt
Wenn beim Tippen einer interaktiven Shell mit Anaconda eine lange Fehlermeldung angezeigt wird
Fehler, der in OpenCV3 und seiner Lösung aufgetreten ist. Vorsichtsmaßnahmen bei Verwendung von OpenCV3 auf dem Mac
Ich habe versucht, durch Schaben ein Bild zu bekommen
Wenn ich matplotlib in Python versuche, heißt es'cairo.Context '.