利用opencv 能够读取多个文件夹,读取文件夹可以自己选择,保存文件夹路径自己选择,保存的图像名,文件夹名要和读取的图像名,文件名一致,图像去除图像黑色边,保存的图像规格要一致
时间: 2024-03-21 13:39:56 浏览: 93
opencv 读取文件夹中的多幅图片并保存
4星 · 用户满意度95%
是的,可以使用OpenCV来实现这个功能。下面是一个Python代码示例,可以读取指定目录下的所有图像文件,对图像进行预处理(去除黑色边缘),并将处理后的图像保存到指定的目录中。请注意,这个代码示例中默认读取的图像文件扩展名为.jpg,如果您的图像文件扩展名不同,请相应地修改代码。
```python
import cv2
import os
# 指定要读取的文件夹
folder_path = "path/to/folder"
# 指定要保存的文件夹
save_path = "path/to/save"
# 获取文件夹中所有的图像文件名
image_files = [f for f in os.listdir(folder_path) if f.endswith('.jpg')]
# 循环读取每个图像文件并进行预处理
for image_file in image_files:
# 读取图像
image = cv2.imread(os.path.join(folder_path, image_file))
# 去除黑色边缘
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 1, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
x, y, w, h = cv2.boundingRect(contours[0])
image = image[y:y+h, x:x+w]
# 将处理后的图像保存到指定的文件夹中
save_file_path = os.path.join(save_path, image_file)
cv2.imwrite(save_file_path, image)
```
在上面的代码中,我们首先指定要读取的文件夹和要保存的文件夹的路径。然后使用`os.listdir`函数获取指定文件夹中的所有图像文件名,并循环读取每个图像文件。对于每个读取的图像文件,我们使用OpenCV库中的函数进行预处理,去除黑色边缘,并将处理后的图像保存到指定的文件夹中。最后,我们使用`cv2.imwrite`函数将处理后的图像保存到指定的文件夹中。
阅读全文