您好我有一个脚本可以在图像上运行图像处理。但是我试图通过循环或其他方式从文件中读取多个图像
例如
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)
答案 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.listdir
,glob
等,但在这种情况下,您可能对所遍历文件的顺序控制较少。