从图像处理python的文件中读取多个图像

时间:2018-01-29 07:19:26

标签: python image opencv glob

您好我有一个脚本可以在图像上运行图像处理。但是我试图通过循环或其他方式从文件中读取多个图像

例如

  

C:\ Users \ student \ Desktop \ Don \ program(opencv version)\ Images \ move1

move1包含名为frame1.jpg,frame2.jpg,frame3.jpg ...

的图像

我用来运行图像处理的脚本类似于

var y

上面的我的脚本只能读取我手动键入的图像,例如frame1.jg'。对不起,我对python很新。谢谢!

修改 这个我和你们一起编辑的代码帮助..仍然得到错误" Traceback(最近一次调用最后一次):   文件" C:\ Users \ student \ Desktop \ Don \ program(opencv version)\ prog.py",第32行,in     gimg = cv2.cvtColor(mimg,cv2.COLOR_RGB2GRAY)#convert RBG to Grayscale cv2.error:D:\ Build \ OpenCV \ opencv-3.3.1 \ modules \ imgproc \ src \ color.cpp:11048:错误:(-215)scn == 3 || scn == 4 in function cv :: cvtColor"

CODE

img = cv2.imread('frame1.jpg')


mimg = cv2.medianBlur(img,15) 

gimg = cv2.cvtColor(mimg,cv2.COLOR_RGB2GRAY) 

ret,th1 = cv2.threshold(gimg, 160,255,cv2.THRESH_BINARY)

ret,th2 = cv2.threshold(th1, 160,255,cv2.THRESH_BINARY_INV)

cv2.imwrite('threshbinaryinv.jpg', th2)

2 个答案:

答案 0 :(得分:1)

您可以使用os.listdir()获取指定路径中所有图像的名称,即" C:\ Users \ student \ Desktop \ Don \ program(opencv version)\ Images"。然后你可以遍历图像的名称,如:

import os    
import cv2
path_of_images = r"C:\Users\student\Desktop\Don\program (opencv version)\Images"
list_of_images = os.listdir(path_of_images)
for image in list_of_images:
    img = cv2.imread(os.path.join(path_of_images, image))
    """Your code here"""

答案 1 :(得分:0)

可以使用for循环并生成新的str文件名,然后将其处理为:

IMG_FOLDER_PREFIX = "absolute/path/to/frame"
IMG_EXTENSION = ".jpg"
NUM_IMAGES = 10

for i in xrange(NUM_IMAGES):
    image_path = IMG_FOLDER_PREFIX + str(i) + IMG_EXTENSION
    img = cv2.imread(image_path)
    # Other Image Processing.

迭代图像的更好方法是os.listdirglob等,但在这种情况下,您可能对所遍历文件的顺序控制较少。