# CAP\_IMAGES: can't find starting number (in the name of file)

**URL:** <https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546>\
**Category:** Python\
**Tags:** videoio\
**Created:** [February 13, 2022, 8:59am UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546 "2022-02-13T08:59:18Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![NiNhaqui](https://avatars.discourse-cdn.com/v4/letter/n/34f0e0/32.png) [@NiNhaqui](https://forum.opencv.org/u/NiNhaqui)\
**Post date:** [February 13, 2022, 8:59am UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/1 "2022-02-13T08:59:18Z")

</div>

Hi programming experts,

I am having an extreme challenge trying to understand an error dispensed from my code:

I am running code to process 6 classes of 40 videos per class, one class is continuously causing the system to throw errors:

What did I do?

1. I tried reviewing all of the videos from the problems class A and compared this with what is working in B and nothing seems to be an issue there.

2. I checked the size of the videos, colour and resolutions in the working class B and it is a range of RGB and grayscale, what is constant is that the size of such is 320 x 240 resolution. In problem class A this is the same as well as all of the file extensions (.avi).

3. In online forums they mentioned the label names, but I tried using the label names from the working class and that was useless. There are various labelling strategies I tried and that was also pointless.

4. So now that the videos seem to be ok, I targeted the code but everywhere I google the solutions seems to be evading me. And this is challenging me to get a full understanding of what is actually happening.

Can someone guide me here, please?  
This is literally consuming my time and I am pretty sure it is something trivial but yet I cannot seem to see this!

\*\*\* The Code\*\*\*

```auto

import numpy as np
import cv2

class Videoto3D:

    def __init__ (self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth

    def video3d(self, filename, color=False, skip=True):
        cap = cv2.VideoCapture(filename)
        nframe = cap.get(cv2.CAP_PROP_FRAME_COUNT)
        if skip:
            frames = [x * nframe / self.depth for x in range(self.depth)]
        else:
            frames = [x for x in range(self.depth)]
        framearray = []

        for i in range(self.depth):
            cap.set(cv2.CAP_PROP_POS_FRAMES, frames[i])
            ret, frame = cap.read()
            frame = cv2.resize(frame, (self.height, self.width))
            if color:
                framearray.append(frame)
            else:
                framearray.append(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))

        cap.release()
        return np.array(framearray)

    def get_UCF_classname(self, filename):
        return filename# Controls the length of the class Name

#ORIGINAL CODE
 # def get_UCF_classname(self, filename):
 # return filename[filename.find('_') + 1:filename.find('_', 20)]# Controls the length of the class Name

```

_ **NOW THE ERRORS** _

```auto

**********************************************************
Processing All Class Labels For Video Data Input Completed
  0%| | 0/6 [00:00<?, ?it/s] **********************************************************
Generating/Join Class Labels For Video Dataset For Input Completed
100%|█████████████████████████████████████████████| 6/6 [00:12<00:00, 2.72s/it]OpenCV: Couldn't read video stream from file "./dataset/Shooting/.DS_Store"
[ERROR:0@13.430] global /Users/runner/work/opencv-python/opencv-python/opencv/modules/videoio/src/cap.cpp (166) open VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.5.5) /Users/runner/work/opencv-python/opencv-python/opencv/modules/videoio/src/cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): ./dataset/Shooting/.DS_Store in function 'icvExtractPattern'

Traceback (most recent call last):
  File "3dcnn9.py", line 1009, in <module>
    main()
  File "3dcnn9.py", line 321, in main
    x, y = loaddata(args.videos, vid3d, args.nclass,
  File "3dcnn9.py", line 208, in loaddata
    X.append(vid3d.video3d(name, color=color, skip=skip))  
  File "/Users/mmgp0hotmail.com/opt/3DCNN/3DCNNtesting/videoto3d.py", line 25, in video3d
    frame = cv2.resize(frame, (self.height, self.width))
cv2.error: OpenCV(4.5.5) /Users/runner/work/opencv-python/opencv-python/opencv/modules/imgproc/src/resize.cpp:4052: error: (-215:Assertion failed) !ssize.empty() in function 'resize'

100%|█████████████████████████████████████████████| 6/6 [00:12<00:00, 2.14s/it]
'''

```

---

<div class="post-metadata">

**Author:** ![berak](https://avatars.discourse-cdn.com/v4/letter/b/85f322/32.png) [@berak](https://forum.opencv.org/u/berak)\
**Post date:** [February 13, 2022, 9:26am UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/2 "2022-02-13T09:26:04Z")

</div>

> [@NiNhaqui](#):
>
> `Couldn't read video stream from file "./dataset/Shooting/.DS_Store"`

silly apple programs leave folders like this on your disk, it’s just garbage that gets in your way. (and you probably cant see “hidden” files starting with a dot in your directory)

either try to remove it manually, or filter filenames while reading in your videos  
(e.g. ignore anything starting with a dot)

---

<div class="post-metadata">

**Author:** ![NiNhaqui](https://avatars.discourse-cdn.com/v4/letter/n/34f0e0/32.png) [@NiNhaqui](https://forum.opencv.org/u/NiNhaqui)\
**Post date:** [February 13, 2022, 9:45am UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/3 "2022-02-13T09:45:55Z")

</div>

Hi @berak,

The thing is that it works, just not with this specific class. Relative to your answer is there a way to do this?  
Can you. guide me via a link, pretty please?

oh, by the way, thank you for responding so swiftly!!

AND I just removed the .ds files as you suggested but the same error is occurring!!

are you sure it is this file or it has something to do with a size structure?  
please assist, going bonkers here loloz

---

<div class="post-metadata">

**Author:** ![berak](https://avatars.discourse-cdn.com/v4/letter/b/85f322/32.png) [@berak](https://forum.opencv.org/u/berak)\
**Post date:** [February 13, 2022, 10:21am UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/4 "2022-02-13T10:21:22Z")

</div>

can you show, how you read the video files ?

python has a builtin `glob` function to traverse folders, you can filter for positives like `*.avi`

---

<div class="post-metadata">

**Author:** ![NiNhaqui](https://avatars.discourse-cdn.com/v4/letter/n/34f0e0/32.png) [@NiNhaqui](https://forum.opencv.org/u/NiNhaqui)\
**Post date:** [February 13, 2022, 10:50am UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/5 "2022-02-13T10:50:41Z")

</div>

hi @berak,

See the code below for reading the classes of the video data:

and thanx once more for assisting so swiftly, really appreciate this!

‘’’  
def loaddata(video\_dir, vid3d, nclass, result\_dir, color=False, skip=True):  
# This loads the .DS\_Store in the class incrementing the number of classes by one

```
files = os.listdir(video_dir)
root = '/Users/mmgp0hotmail.com/opt/3DCNN/3DCNNtesting/dataset'

dirlist = [item for item in os.listdir(
    root) if os.path.isdir(os.path.join(root, item))]
print(' **********************************************************')
print('DIRLIST Directory Completed', dirlist)

file_paths = []
for file_name in os.listdir(root):
    file_path = os.path.join(root, file_name)
    if os.path.isfile(file_path):
        file_paths.append(file_path)
        print(' **********************************************************')
        print('ALL Directory File Paths Completed', file_paths)

# folder_names = []
# for entry_name in os.listdir(root):
# entry_path = os.path.join(root, entry_name)
# if os.path.isdir(entry_path):
# folder_names.append(entry_name)
# print(' **********************************************************')
# print('ALL Directory Folder Names Completed',file_paths)

roots, dirsy, fitte = next(os.walk(root), ([], [], []))
print(' **********************************************************')
print('ALL Directory ROOTED', roots, fitte, dirsy)

print(' **********************************************************')
print('Processing All Class Labels For Video Data Input Completed')

X = []
# print('X labels==>', X)
labels = []
# print('The Processed Labels ==>', labels)
labellist = []
# print('Lablelist', labellist)

pbar = tqdm(total=len(files)) # generate progress bar for file processing

print(' **********************************************************')
print('Generating/Join Class Labels For Video Dataset For Input Completed')

```

# Accessing files and labels from dataset directory

```
for filename in files:
    # print(' **********************************************************')
    # print('This is my Filename before join',filename)
    pbar.update(1)
    if filename == '.DS_Store':#.DS_Store
        continue

    namelist = os.path.join(video_dir, filename)
    # print(' **********************************************************')
    # print('This is my namelist after join',namelist)#PRINTS ALL CLASSName Files
    # print(' **********************************************************')
    # print('This is the name list',namelist)

    files2 = os.listdir(namelist)
    # print(' **********************************************************')
    # print('This is the files2 For Class Filename',files2)#PRINTS ALL CLASSName Files

    for files3 in files2:
        
        name = os.path.join(namelist, files3)
       
        # print(' **********************************************************')
        # print('This is Name For Class Filename',name)#PRINTS ALL CLASSName Files
        # print("ok")
        #print("dir is ", name)
        # getting all class names for processing
        # Calls the filename from Video3d.py
        label = vid3d.get_UCF_classname(filename)
        
        labels.append(label)

        if label not in labellist:
            if len(labellist) >= nclass:
                continue
            labellist.append(label) # storing labellist of files
            # print("This is the labellist ",labellist.append(label))
        # labels.append(label) # storing labels
        #print("This is the labels ",labels.append(label))

        X.append(vid3d.video3d(name, color=color, skip=skip))  

pbar.close()

```

‘’’

---

<div class="post-metadata">

**Author:** ![berak](https://avatars.discourse-cdn.com/v4/letter/b/85f322/32.png) [@berak](https://forum.opencv.org/u/berak)\
**Post date:** [February 13, 2022, 12:18pm UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/6 "2022-02-13T12:18:06Z")

</div>

> [@NiNhaqui](#):
>
> ```
> # This loads the .DS_Store in the class incrementing the number of classes by one
> 
> ```

again, you have to skip it (however you accomplish that)

---

<div class="post-metadata">

**Author:** ![NiNhaqui](https://avatars.discourse-cdn.com/v4/letter/n/34f0e0/32.png) [@NiNhaqui](https://forum.opencv.org/u/NiNhaqui)\
**Post date:** [February 13, 2022, 12:56pm UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/7 "2022-02-13T12:56:09Z")

</div>

@berak thanx pal will work on it, no luck yet but working on it

---

<div class="post-metadata">

**Author:** ![NiNhaqui](https://avatars.discourse-cdn.com/v4/letter/n/34f0e0/32.png) [@NiNhaqui](https://forum.opencv.org/u/NiNhaqui)\
**Post date:** [February 13, 2022, 2:07pm UTC](https://forum.opencv.org/t/cap-images-cant-find-starting-number-in-the-name-of-file/7546/8 "2022-02-13T14:07:27Z")

</div>

@berak I got it to work, it was one of the videos that were corrupted in the preprocessing stages thank you for your assistance… so grateful for you coming to my rescue!

I went through all of the files as I couldn’t believe that that was the case and there it was a silly error!

Happy sunday!

cheers
