批量读取图片 图片序号1.png到100.png
时间: 2024-09-18 16:03:35 浏览: 41
批量读取从1.png到100.png这样的图片序列,你可以使用Python的os模块来遍历目录,然后逐个读取图片。下面是一个简单的示例:
```python
import os
import cv2
directory = '你的图片目录路径' # 替换为你存放图片的实际路径
for i in range(1, 101):
image_path = os.path.join(directory, f'{i}.png') # 构建图片完整路径
try:
img = cv2.imread(image_path) # 读取图片
if img is not None:
# 对每张图片进行你需要的操作...
# 这里可以添加你的图像处理代码
# ...
else:
print(f"无法读取第{i}张图片: {image_path}")
except Exception as e:
print(f"读取第{i}张图片时出错: {str(e)}")
```
这个脚本会遍历指定目录下的1.png到100.png,尝试读取每一张图片。如果图片存在并且能够成功读取,你可以在这里进行相应的图像处理操作;如果遇到错误(如图片不存在或损坏),则会捕获异常并打印错误信息。
相关问题
import os.path import cv2 # --------------------------- def from_video_get_img(video_path): print(video_path) print(video_path + ' Is Loading...') # 创建存放结果图片的文件 save_file_name = video_path.split('/')[-1].split('.')[0] save_fgmask_path = 'Package/Fgmask/' + save_file_name + '/' if not os.path.exists(save_fgmask_path): os.makedirs(save_fgmask_path) # 读取视频 cap = cv2.VideoCapture(video_path) if cap.isOpened(): # best>MOG fgbg = cv2.bgsegm.createBackgroundSubtractorMOG() fgmask_img_list = [] id = 0 flag = True while flag: ret, frame = cap.read() if ret: fgmask = fgbg.apply(frame) fgmask_img_list.append(fgmask) id += 1 cv2.imshow('frame', fgmask) cv2.waitKey(1) else: break cap.release() cv2.destroyAllWindows() # 写入中间30%-70%的图片张以确保质量 length = len(fgmask_img_list) for i in range(int(length * 0.2), int(length * 0.8) + 1): cv2.imwrite(save_fgmask_path + str(i) + '.png', fgmask_img_list[i]) if __name__ == "__main__": # 在此强调 video 一定要改名为:名字代号_走路状态_序号.视频类型 的格式,不然程序会报错 # 如果想要不报错 请修改 save_file_name 这个变量的赋值过程 from_video_get_img("E:\opencv\deepdearning\tds_nm_01.mp4")
这两个语句是Python代码中的导入语句,用于导入相应的模块。其中,os.path是Python内置的操作文件路径的模块,而cv2则是OpenCV库的Python接口,用于图像处理和计算机视觉相关的任务。通过导入这些模块,就可以在Python程序中调用其中的函数和类来完成具体的操作。
%% 读取视频 video_file='/Users/zxh-mac/Desktop/我不是药神/我不是药神.mp4'; video=VideoReader(video_file); video.FrameRate; frame_number=floor(video.Duration* video.FrameRate);%Duration代表整个视频时间,FrameRate代表视频帧率 n=150;%n每150帧取一张图片,如果n=video.FrameRate*150每150秒取一帧 %% 分离图片 k=1; for i=1:n:frame_number image_name=strcat('/Users/zxh-mac/Desktop/我不是药神',num2str(k)); image_name=strcat(image_name,'.png'); I=read(video,i); %读出图片 imwrite(I,image_name,'png'); %写图片 k=k+1; I=[]; end
这是一段MATLAB代码,用于从视频中分离出一些帧作为图片。具体来说,这段代码读取一个名为“我不是药神.mp4”的视频文件,然后将其中的帧按一定规则(每150帧取一帧)分离出来,保存为png格式的图片。图片保存的路径为“/Users/zxh-mac/Desktop/我不是药神”下,文件名为数字序号。这段代码还可以通过调整变量n的值,来修改取帧的规则。
阅读全文