primetang / pylsd

python bindings for LSD - Line Segment Detector.
Other
159 stars 63 forks source link

fp = open(temp, 'r') FileNotFoundError: [Errno 2] No such file or directory: #8

Open getsanjeev opened 6 years ago

getsanjeev commented 6 years ago

Traceback (most recent call last): File "YOUR_FILE.py", line 29, in lines = lsd(gray) File "C:\YOUR_WORKING_DIRECTORY\pylsd_repo\pylsd\lsd.py", line 24, in lsd fp = open(temp, 'r') FileNotFoundError: [Errno 2] No such file or directory: 'C:/YOUR_WORKING_DIRECTORY/536135ntl.txt'

getsanjeev commented 6 years ago

Using Windows, if you installed it using source code, may be this is happening to you. I just faced it and resolved it using a quick (its nasty but works) fix.

  1. open lsd.py and put a print(temp) just when temp has been created, this gives the path where temp file is created
  2. A file would be created every time at this location, but the name is not as per expected, due to some reasons. (EXPECTED: randomno+ntl.txt, ACTUAL: C - in my case)
  3. just replace temp by this new path(location of file+C) at two places - a) where it is read again b) in remove
  4. Done, should work!
belnasty commented 6 years ago

@getsanjeev great work! Sorrowly, it does not work for Linux. Probably, you have any ideas for it too?

getsanjeev commented 6 years ago

Yes it does not work on Linux, I would update for Linux, let me figure out something.

sevenHsu commented 6 years ago

@getsanjeev Yep!Just Replace 15th line code temp = os.path.abspath(str(np.random.randint( 1, 1000000)) + 'ntl.txt').replace('\\', '/') in this file "pylsd/pylsd/lsd.py" to temp='a'. I just run this code on windows

dlinzhao commented 5 years ago

Just replace 15th line and 20th line in pylsd/pylsd/lsd.py as follows: # temp = os.path.abspath(str(np.random.randint(1, 1000000)) + 'ntl.txt').replace('\\', '/') temp = os.path.abspath(str(np.random.randint(1, 1000000)) + 'ntl.txt').replace('\\', '/').encode('utf-8') # lsdlib.lsdGet(src, ctypes.c_int(rows), ctypes.c_int(cols), temp) lsdlib.lsdGet(src, ctypes.c_int(rows), ctypes.c_int(cols), ctypes.c_char_p(temp))

anyongjin commented 3 years ago

I upgraded the lsd algorithm version from 1.5 to 1.6, and solved the FileNotFoundError. Now it works on python3. You can install it with pip install pylsd2