Python 通过视频捕获读取一系列图像

Python 通过视频捕获读取一系列图像,python,numpy,opencv3.0,Python,Numpy,Opencv3.0,下面是一段python代码,用于使用openCV的VideoCapture模块读取图像序列(0.jpg…1052.jpg) import cv2 import numpy cap = cv2.VideoCapture("/path to/RGB/I%04d.jpg",cv2.CAP_IMAGES). while(1): ret,frame = cap.read() cv2.imshow('image',frame) cv2.waitKey() print(frame.s

下面是一段python代码,用于使用
openCV
VideoCapture
模块读取图像序列(0.jpg…1052.jpg)

import cv2
import numpy
cap = cv2.VideoCapture("/path to/RGB/I%04d.jpg",cv2.CAP_IMAGES).

while(1):
   ret,frame = cap.read()
   cv2.imshow('image',frame)
   cv2.waitKey()
   print(frame.shape)
我得到这个错误

OpenCV错误:在imshow中断言失败(size.width>0&&size.height>0)

框架对象似乎是空的

cap=cv2.VideoCapture(“/%04.jpg”,cv2.cap\u图像)
cap = cv2.VideoCapture("<path>/%04.jpg",cv2.CAP_IMAGES)
将图像重命名为向左填充3个零,然后将%04填充为向左填充0,以保留数字,例如:0001、0002、…、1000等

或者,我将运行一个for循环,从1、2、…、n开始迭代,然后从那里捕获img名称,然后使用以下内容进行图像读取:

import cv2
import numpy

# Make sure range starts correctly.
nbrofpictures = 1000
for x in range(1, nbrofpictures):
    #make sure path is correct.
    path = '/<yourpath>/%d.jpg' % x
    print (path)
    frame = cv2.imread(path)
    cv2.imshow('image',frame)
    cv2.waitKey()
    print(frame.shape)
导入cv2
进口numpy
#确保范围正确启动。
照片数量=1000
对于范围内的x(1张照片):
#确保路径正确。
路径='/%d.jpg'%x
打印(路径)
帧=cv2.imread(路径)
cv2.imshow(“图像”,帧)
cv2.waitKey()
打印(框架形状)

问题来自图像文件的名称

1) 使用脚本shell重命名文件

images=$(for i in `ls *.jpg`; do LEN=`expr length $i`; echo  $i; done | sort -n)
j=1
for i in $images; do
  new=$(printf "%04d.jpg" "$j") #04 pad to length of 4
  mv -i -- "$i" "$new"
  let j=j+1
   #we can add a condition on j to rename just the first 999 images.
done
2) 读取图像序列图像:

import cv2
import numpy
cap = cv2.VideoCapture("/path to/RGB/I%04d.jpg",cv2.CAP_IMAGES).

while(1):
   ret,frame = cap.read()
   cv2.imshow('image',frame)
   cv2.waitKey()
   print(frame.shape)

好吧,这就是你在没有更多图像可读的情况下继续打印时得到的结果。它可能试图读取图像1053-而
cap
没有。-不管怎样-你没有真正地提出一个问题,更多地陈述显而易见的,那么出了什么事?好的阅读顺便说一句:-我认为NR3today@GerardH.Pille,我的意思是我从第一次迭代中得到一个错误。您是在尝试捕获图像,还是显示现有图像的信息?打印前,显示“ret”的内容。但我找不到解释返回值的文档。这只是一个输入错误。问题是在第一行“I%04d.jpg”中,如何指定它?我想我必须将图像从0.jpg重命名为0000.jpg…1052.jpgI还无法找到数字1,2,3,4…1000的有效解决方案。然而,如果你有像0001,0002,0003,…,1000这样的数字,我有一个解决方案04d.jpg”,cv2.CAP_图片)