我在一个文件夹中有多个图像,我想对其进行处理并将一些opencv函数应用于它们。
我正在尝试查找文件夹中存在的每个图像的轮廓。
我一次可以处理一个。
单张图片的代码
img = cv2.imread('abc.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray,85,155,cv2.THRESH_BINARY_INV)
thresh = cv2.GaussianBlur(thresh,(11,11),0)
_, contours, _ = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
final = cv2.drawContours(img,contours, -1, (0,255,0), 3)
cv2.imshow('Output', final)
cv2.waitKey(0)
cv2.destroyAllWindows()
我想要对文件夹中存在的多个图像应用这些操作。
答案 0 :(得分:1)
您可以编写一个for循环,然后在该目录上循环,并将此过程应用于目录中的每个图像:
for image in os.listdir('path_ti_images_folder'):
img = cv2.imread(os.path.join('path_to_images_folder', image))
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray,85,155,cv2.THRESH_BINARY_INV)
thresh = cv2.GaussianBlur(thresh,(11,11),0)
_, contours, _ = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
final = cv2.drawContours(img,contours, -1, (0,255,0), 3)
cv2.imshow('Output', final)
cv2.waitKey(0)
cv2.destroyAllWindows()