folder_selected = filedialog.askdirectory()
images_path = glob.glob(folder_selected+"/*")
print("image_path: ",images_path)
layer_names = net.getLayerNames()
output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
colors = np.random.uniform(0, 255, size=(len(classes), 3))
# Insert here the path of your images
random.shuffle(images_path)
# loop through all the images
for img_path in images_path:
# Loading image
img = cv2.imread(img_path)
img = cv2.resize(img, None, fx=0.4, fy=0.4)
height, width, channels = img.shape
the code works perfectly on Mac but when I run the code on Windows
problems occur with the path
the path cannot be a pure string I have to put r on the path like this (r"path") ,so this problem solved
but now it shows an error
img = cv2.resize(img, None, fx=0.4, fy=0.4)
cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-6uw63ony\opencv\modules\imgproc\src\resize.cpp:4051: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
I did try to print the image path and I found that on Mac, it is performed correctly
but on the Windows
the path shows
C:/Users/Wor/Downloads/PPE_Detection/PPE_Detection/Sample_Input/had_no_email_in_folder/image_fol\\139.jpg
the last part of the path is double backslash while on mac is normally path
I searched on the internet and found that \ also can work
but actually it won’t
I did try copied the
C:/Users/Wor/Downloads/PPE_Detection/PPE_Detection/Sample_Input/had_no_email_in_folder/image_fol\\139.jpg
and pasted on the Windows Explorer (don’t know its name)
it also cannot find the image
but if I change double backslash to normal slash like this
C:/Users/Wor/Downloads/PPE_Detection/PPE_Detection/Sample_Input/had_no_email_in_folder/image_fol/139.jpg
it can find the image
How this problem occurs?
I cannot find anyone had problem like me
berak
April 30, 2021, 1:07pm
2
that’s the most blunt lie i ever heard.
it sems, every python noobs encounters this kind of error, this also has been answered like 500 times here and on SO
main problem is: you have to manually CHECK the output of imread() or cap.read()
else your NEXT operation will fail, something like:
img = cv2.imread(img_path)
if img is None:
# print some err
continue
btw:
\\
only works inside strings (inside a program), not in some filebox
and yes, even on windows, prefer single /
as seperators
it cannot find the image at all but the path is generated by image in the folder
img = cv2.imread(img_path)
if img is None:
# print some err
continue
if I do this nothing would pass into detection
as I have said it works correctly on mac but not on windows
why the last part of the path have to be \ and as you have said it works on program why the error occurs
actually I have seen a ton of [Error: (-215:Assertion failed) but their case, they can’t even run their code but mine perform correctly on mac
I no longer had Windows to try any but I just want to know why this occur
(the code is written on my mac, I just want to run it on the other computer)
berak
April 30, 2021, 2:52pm
5
maybe you need some glob filter, like "/*.jpg"
there might be non-image files in your folder, like a thumbnails.db
the images had jpg, jpeg, or even png that why I put just *
Maybe try to get just the filename and then rebuild the path with os.path.join which will use the correct character depending on the OS.
Also, in my opinion you should do some checks before, like “os.path.isfile(path)” or “os.path.exists(path)”, that will save you some trouble
[EDIT] You also have built-in functions in os module like os.path.normcase
I’m on Windows, see :
import os
import glob
folder = "C:/Users/pomme/test"
subfolders = glob.glob(folder+"/*")
print(folder)
for foldername in subfolders:
print(os.path.normcase(foldername))
Result
['C:/Users/pomme/test\\one', 'C:/Users/pomme/test\\two']
c:\users\pomme\test\one
c:\users\pomme\test\two
You can also fix the pathnames yourself by doing
filename.replace("\\","/")
filename.replace("\","/")
Having the same problem in 2023 and this part is pure gold.
I am aware that I lack programming skills but I will never assume that I am that special hahahahaha
khemakorn:
it can find the image
How this problem occurs?
Just to answer this question because I had a similar problem just now
I was searching for the new folder path that the file is in today, but I could not find it so I downloaded the image from the notebook itself, you just have to open the notebook with the last run and download the picture from the cell output (if you are using Colab) and then upload it and use its new path.
You just don’t have the picture in that folder.
I was meaning that I couldn’t search and find same issue on the internet.
Assuming myself so special on the internet board seem shameless.
I don’t clearly remember what i was trying to achieve at that time, but for sure not running python in a cell. I think i had pure .py code.
khemakorn:
pure .py code.
I usually run in .py when it’s working in .ipynb hahaha
That was just a joke, Sorry if it came wrong.
But it’s funny when I see my questions from years ago, I once asked a question and said that it was running in 64-bit
crackwitz
Split this topic
October 23, 2024, 6:24pm
15