simonarvin/eyeloop

SystemError: new style getargs format but argument is not a tuple (#39)

teamcharliegithub opened this issue · 1 comments

Having the same issue as #39 - receiving a SystemError in regards to Line 79 of processor.py. I attempted a fix by changing self.blur = [3, 3] to be a tuple, to no avail. I found some talk on StackExchange referencing changing the type of the value inside the tuple, but that also did not work.

I will also say this is occurring from a totally fresh install of EyeLoop.
My dependencies are:
eyeloop: 0.35
numpy: 1.19.5
opencv-contrib-python: 4.4.0.46
pip: 23.3
pymba: 0.3.7
PyYAML: 6.0.1
setuptools: 68.0.0
wheel: 0.41.2

These are the only packages have installed in my (also fresh) Anaconda virtual environment, which is dedicated for EyeLoop testing.
Though the error seems to be the same as in #39, my particular traceback is below:

2023-10-18 00:07:56,428 - eyeloop.run_eyeloop - INFO - Initiating tracking via Importer: cv
    Processing 0 frames per second.
Traceback (most recent call last):
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\USER1\anaconda3\envs\EL3\Scripts\eyeloop.exe\__main__.py", line 7, in <module>
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\run_eyeloop.py", line 110, in main
    EyeLoop(sys.argv[1:], logger=None)
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\run_eyeloop.py", line 43, in __init__
    self.run()
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\run_eyeloop.py", line 94, in run
    self.run_importer()
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\run_eyeloop.py", line 101, in run_importer
    config.importer.route()
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\importers\cv.py", line 68, in route
    self.first_frame()
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\importers\cv.py", line 65, in first_frame
    self.arm(width, height, image)
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\importers\importer.py", line 45, in arm
    config.engine.arm(width, height, image)
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\engine\engine.py", line 85, in arm
    self.iterate(image)
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\engine\engine.py", line 183, in track
    self.pupil_processor.track(img)
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\engine\processor.py", line 112, in track_
    self.thresh() #either pupil or cr
  File "C:\Users\USER1\anaconda3\envs\EL3\lib\site-packages\eyeloop\engine\processor.py", line 79, in pupil_thresh
    self.source[:] = cv2.threshold(cv2.GaussianBlur(cv2.erode(self.source, kernel, iterations = 1), self.blur, 0), self.binarythreshold, 255, cv2.THRESH_BINARY_INV)[1]
SystemError: new style getargs format but argument is not a tuple
    Processing 0 frames per second.
y1h6b commented

you seem to have to make the "self.blur" a tuple(3,3) rather than [3, 3], and the steup again